English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Bibliothèque standard C - <string.h>
Fonction de bibliothèque C void *memmove(void *str1, const void *str2, size_t n) de str2 copier n de caractères vers str1Cependant, en ce qui concerne les blocs de mémoire superposés, memmove() est une méthode plus sécurisée que memcpy(). Si la zone cible et la zone source ont des parties superposées, memmove() garantit que les octets de la zone superposée sont copiés dans la zone cible avant que la chaîne source ne soit couverte, et le contenu de la zone source est modifié après la copie. Si la zone cible et la zone source ne se superposent pas, la fonction fonctionne de la même manière que memcpy().
Voici la déclaration de la fonction memmove().
void *memmove(void *str1, const void *str2, size_t n)
Cette fonction retourne un pointeur vers la zone de stockage cible str1 du pointeur.
Le exemple suivant montre l'utilisation de la fonction memmove().
#include <stdio.h> #include <string.h> int main () { const char dest[] = "oldstring"; const char src[] = "newstring"; printf("Avant memmove dest = %s, src = %s\n", dest, src); memmove(dest, src, 9); printf("Après memmove dest = %s, src = %s\n", dest, src); return(0); }
Laissez-nous compiler et exécuter le programme ci-dessus, ce qui produira le résultat suivant :
Avant memmove dest = oldstring, src = newstring Avant memmove dest = newstring, src = newstring