题目
用C 语言实现函数void * memmove(void *dest, const void *src, size_t n)。memmove 函数的功能是拷贝src 所指的内存内容前n 个字节到dest 所指的地址上。
代码
void * memmove(void *dest, const void *src, size_t n) { if (dest==NULL || src == NULL) error(“NULL pointers”); byte * psrc = (byte*)src; byte * pdest = (byte*)dest; int step = 1; if (dest < src + n) { psrc = (byte*)(src+n-1); pdest = (byte*)(dest+n-1); step = -1; } for (int i=0; i<n; i++) { pdest = psrc; pdest += step; psrc += step; } return pdest; }