#include <string.h> void *memmove(void *vdest, const void *vsrc, size_t count) { const char *src = vsrc; char *dest = vdest; if (dest <= src) { while (count--) *dest++ = *src++; } else { src += count - 1; dest += count - 1; while (count--) *dest-- = *src--; } return vdest; }