Descripción
La función de la biblioteca C void *memmove(void *str1, const void *str2, size_t n) copias n personajes de str2 a str1, pero para bloques de memoria superpuestos, memmove () es un enfoque más seguro que memcpy ().
Declaración
A continuación se muestra la declaración de la función memmove ().
void *memmove(void *str1, const void *str2, size_t n)
Parámetros
str1 - Este es un puntero a la matriz de destino donde se va a copiar el contenido, convertido a un puntero de tipo void *.
str2 - Este es un puntero al origen de los datos que se copiarán, convertido a un puntero de tipo void *.
n - Este es el número de bytes que se copiarán.
Valor devuelto
Esta función devuelve un puntero al destino, que es str1.
Ejemplo
El siguiente ejemplo muestra el uso de la función memmove ().
#include <stdio.h>
#include <string.h>
int main () {
char dest[] = "oldstring";
const char src[] = "newstring";
printf("Before memmove dest = %s, src = %s\n", dest, src);
memmove(dest, src, 9);
printf("After memmove dest = %s, src = %s\n", dest, src);
return(0);
}
Compilemos y ejecutemos el programa anterior que producirá el siguiente resultado:
Before memmove dest = oldstring, src = newstring
After memmove dest = newstring, src = newstring