English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Lezioni di base del linguaggio C

Controllo di flusso del linguaggio C

Funzioni del linguaggio C

Array del linguaggio C

Puntatori del linguaggio C

Stringhe del linguaggio C

Struttura del linguaggio C

File del linguaggio C

Altri C

Manuale di riferimento del linguaggio C

Modo d'uso e esempio della funzione memmove() della libreria C

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().

Dichiarazione

Di seguito è riportata la dichiarazione della funzione memmove().

void *memmove(void *str1, const void *str2, size_t n)

Parametri

  • str1 -- Puntatore all'array di destinazione per memorizzare il contenuto copiato, convertito in puntatore void*.
  • str2 -- Puntatore al contenuto di origine da copiare, convertito in puntatore void*.
  • n -- Il numero di byte da copiare.

Valore di ritorno

La funzione restituisce un puntatore al contenuto della memoria di destinazione str1.

Esempio online

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

Libreria standard C - <string.h>