用C语言实现函数char *_memmove(char* dest, const char *src, size_t len)。_memmove函数的功能是拷贝src所指的内存内容前n个字节到dest所指的地址上。(注意重叠的情况)
Code
char *_memmove(char* dest, const char *src, size_t len)
{
assert(src != 0 && src != 0);
if (dest < src)
{
char *p = dest;
for (size_t i = 0; i < len; i++)
*p++ = *src++;
}
else if (dest > src)
{
char *p = dest + len - 1;
src += len - 1;
for (size_t i = len - 1; i >= 0; i--)
*p-- = *src--;
}
return dest;
}
int main()
{
char buf[30] = "123456789abcdef";
cout << _memmove(buf + 5, buf, 9) << endl;
}