English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Libreria standard C - <string.h>
Funzione della libreria C void *memmove(void *str1, const void *str2, size_t n) da str2 copia n di caratteri a str1Ma in termini di memoria sovrapposta, memmove() è un metodo più sicuro rispetto a memcpy(). Se l'area di destinazione e l'area di origine si sovrappongono, memmove() garantisce che i byte dell'area sovrapposta vengano copiati nell'area di destinazione prima di essere coperti, e il contenuto dell'area di origine viene modificato dopo la copia. Se l'area di destinazione e l'area di origine non si sovrappongono, funziona allo stesso modo della funzione memcpy().
Di seguito è riportata la dichiarazione della funzione memmove().
void *memmove(void *str1, const void *str2, size_t n)
La funzione restituisce un puntatore al contenuto della memoria di destinazione str1.
Esempio di utilizzo della funzione memmove() di seguito.
#include <stdio.h> #include <string.h> int main () { const char dest[] = "oldstring"; const char src[] = "newstring"; printf("Prima di memmove dest = %s, src = %s\n", dest, src); memmove(dest, src, 9); printf("Dopo memmove dest = %s, src = %s\n", dest, src); return(0); }
Facciamo compilare ed eseguire il programma sopra, che produrrà i seguenti risultati:
Prima di memmove dest = oldstring, src = newstring Dopo memmove dest = newstring, src = newstring