void * memmove(void *, const void *, size_t)
The memmove() function copies len bytes from memory area src to memory area dest. The memory areas may overlap.
The memmove() function returns a pointer to dest.