Le man de la fonction memcpy
🎯 Copier des blocs de mémoire d’une zone à une autre
⚙️ Prototype de memcpy
void *memcpy(void *dest, const void *src, size_t n);
🧑💻 Fonctionnement de memcpy
La fonction memcpy
copie n
octets de la mémoire source pointée par src
vers la mémoire de destination pointée par dest
. Les zones de mémoire ne doivent pas se chevaucher; si elles le font, le comportement de memcpy
est indéfini. Pour gérer les cas de chevauchement, utilisez plutôt memmove
. Cette fonction est couramment utilisée pour copier des blocs de données, tels que des structures ou des tableaux, d’un emplacement en mémoire à un autre.
Paramètres :
dest
: Pointeur vers le bloc de mémoire de destination.src
: Pointeur vers le bloc de mémoire source.n
: Nombre d’octets à copier.
Retour :
- Un pointeur vers la mémoire de destination
dest
.
Remarques :
memcpy
est extrêmement rapide pour copier des données, mais soyez prudent avec les zones de mémoire qui se chevauchent, car cela peut entraîner des résultats inattendus. Dans de tels cas,memmove
est préférable.Attention : Assurez-vous que les zones de mémoire source et destination ont au moins
n
octets disponibles, sinon, cela pourrait entraîner un comportement indéfini ou des erreurs de segmentation.
✨ Exemple d'utilisation de memcpy
memcpy
est utilisé pour copier les éléments d’un tableau d’entiers src
vers un autre tableau dest
. Cette méthode est rapide et efficace pour dupliquer des tableaux ou copier des portions de mémoire.
int src[5] = {1, 2, 3, 4, 5};
int dest[5];
memcpy(dest, src, 5 * sizeof(int));
for (int i = 0; i < 5; i++) {
printf("%d ", dest[i]);
}
Voir aussi :
memmove
: Copie des zones de mémoire qui peuvent se chevaucher en toute sécurité.memset
: Remplit une zone de mémoire avec une valeur donnée.memcmp
: Compare deux zones de mémoire.strcpy
: Copie une chaîne de caractères dans une autre.strncpy
: Copie un nombre limité de caractères d’une chaîne dans une autre.