Comment copier des tableaux avec memmove() en programmation C

Comment Copier Des Tableaux Avec Memmove En Programmation C



Les tableaux sont un élément de base du langage de programmation C, qui permet à un programmeur de stocker de nombreux éléments du même type de données dans une seule variable. Il y a des moments où un programmeur peut avoir besoin de répliquer le contenu d'un tableau à un autre.

Qu'est-ce que la fonction memmove()

La fonction bibliothèque C memmove() est utilisé pour copier un certain nombre d'octets d'une adresse mémoire à une autre. En raison du fait qu'il n'est pas affecté par des zones de données qui se chevauchent, il s'agit d'une technique efficace et productive de copie de données. Lors de l'utilisation memmove() pour copier un tableau, il y a quelques points à garder à l'esprit. La fonction doit d'abord recevoir deux pointeurs, l'un représentant l'emplacement mémoire source et l'autre l'emplacement mémoire destination. La quantité d'octets que vous souhaitez copier de la source vers la destination doit également être spécifiée.

Le memmove() La méthode est une fonction flexible qui peut gérer des sources qui se chevauchent et copier des données dans n'importe quel ordre depuis n'importe où dans la mémoire. Le seul inconvénient est que cela prend un peu plus de temps que d'autres méthodes de copie comme memcpy().







Comment copier des tableaux avec memmove() en programmation C

Le memmove() fonction est définie dans le bibliothèque et a la syntaxe :



annuler * memmove ( annuler * commencer , constante annuler * src , taille_t n ) ;

Le pointeur void* dest spécifie le tableau destination, dans lequel le contenu du tableau source sera copié. Le pointeur vers le tableau source que nous voulons copier est const annuler* src . Le nombre d'octets que nous voulons copier du tableau source vers le tableau de destination est spécifié par l'argument size_t n .



Regardez la ligne de code suivante, par exemple :





#include

#include

entier principal ( ) {

entier source_array [ ] = { 1 , 2 , 3 , 4 , 5 } ;

entier tableau_destination [ 5 ] = { 0 } ;

taille_t taille = taille de ( source_array ) ;

memmove ( tableau_destination , source_array , taille ) ;

pour ( entier je = 0 ; je < 5 ; je ++ ) {

printf ( '%d ' , tableau_destination [ je ] ) ;

}

retour 0 ;

}

Les tableaux source et destination sont d'abord définis dans le code ci-dessus. Le tableau de destination est initialement vide, mais le tableau source contient les éléments 1 à 5. Le taille de() L'opérateur est ensuite utilisé pour déterminer la taille du tableau source et le résultat est enregistré dans la variable de taille. Le contenu du tableau source est copié dans le tableau de destination.

Sortir



Conclusion

Le langage de programmation C offre un moyen efficace et fiable de copier des tableaux avec le memmove() fonction. Sa polyvalence vient de sa capacité à gérer la mémoire qui se chevauche, et en raison de sa syntaxe simple, n'importe quel projet C peut l'utiliser.