Participer au site avec un Tip
Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Fonction memcpy

La fonction memcmp La fonction memmove


Entête à inclure

#include <string.h>  // <cstring> en C++

Fonction memcpy

void * memcpy( void * destination, const void * source, size_t size );                       // Avant C99
void * memcpy( void * restrict destination, const void * restrict source, size_t size );     // A partir de C99

Cette fonction permet de copier un bloc de mémoire spécifié par le paramètre source, et dont la taille est spécifiée via le paramètre size, dans un nouvel emplacement désigné par le paramètre destination. Il est bien entendu qu'il est de votre responsabilité d'allouer suffisamment de mémoire pour le bloc de destination afin qu'il puisse contenir toutes les données.

En cas de chevauchement des deux blocs de mémoire (source et destination) le comportement de la fonction memcpy n'est pas garanti. Dans ce cas, veuillez préférer l'utilisation de la fonction memmove.

Attention, contrairement à strcpy, aucun test sur une éventuelle valeur nulle n'est réalisé pour stopper la copie. Seule la taille du bloc sera considérée.

Paramètres

Valeur de retour

La fonction renvoie l'adresse du bloc de mémoire de destination.

Exemple de code

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() {

    int array [] = { 54, 85, 20, 63, 21 };
    int * copy = NULL;
    int length = sizeof( int ) * 5;
       
    /* Memory allocation and copy */
    copy = (int *) malloc( length );
    memcpy( copy, array, length );
        
    /* Display the copied values */
    for( length=0; length<5; length++ ) {
        printf( "%d ", copy[ length ] );
    }
    printf( "\n" );
        
    free( copy );
    
    return EXIT_SUCCESS;
}

Sujets connexes

memccpy
malloc
memcmp
memmove
memset


La fonction memcmp La fonction memmove