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 reproduire le contenu d'un tableau à un autre.

Quelle est la fonction memmove ()

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

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

Comment copier des tableaux avec memmove () en programmation C

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

void * memmove (void * dest, const void * src, size_t n);

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

Jetez un œil à la ligne de code suivante, par exemple:

#inclure
#inclure
int main()
int source_array [] = 1, 2, 3, 4, 5;
int destination_array [5] = 0;
size_t size = sizeof (source_array);
memmove (destination_array, source_array, taille);
pour (int i = 0; i < 5; i++)
printf ("% d", destination_array [i]);

retour 0;

Le tableau source et les tableaux de tableaux de destination sont d'abord définis dans le code ci-dessus. Le tableau de destination est initialement vide, mais le tableau source a des é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é sur 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 chevauchent, et en raison de sa syntaxe simple, tout projet C peut l'utiliser.