string.h
Función memmove ANSI C
void *memmove(void *s1, const void *s2, size_t n);
Copia los primeros n caracteres del objeto apuntado por s2 al objeto apuntado por s1.Sin embargo, se asegura de que no estén superpuestos. Por esta razón, copia los caracteres a un array/arreglo temporalmente. Después vuelve a copiar del array temporal al objeto en cuestión.
Valor de retorno:
La función retorna el valor de s1.
Ejemplo:
#include <stdio.h>
#include <string.h>
int main()
{
char a[7] = "abcdefg";
char *ptr;
int i;
memmove( ptr, a, 5 );
for( i=0; i<7; i++ )
printf( "a[%d]=%c ", i, a[i] );
printf( "\n" );
for( i=0; i<5; i++ )
printf( "ptr[%d]=%c ", i, ptr[i] );
printf( "\n" );
return 0;
}