Fonction memcpy

Entête à inclure

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

Fonction memcpy

void * memcpy( void * destination, const void * source, size_t size );

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.

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

  • destination : permet de spécifier l'adresse du bloc mémoire devant recevoir les données à copier. Vous devez pré-allouer ce bloc de mémoire (certainnement via la fonction malloc).
  • source : permet de définir l'adresse du bloc de mémoire à dupliquer.
  • size : indique le nombre d'octets à dupliquer.

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 0;
}

Sujets connexes

malloc
memcmp
memset