memcpy函数原型
void *memcpy(void *dest, const void *src, size_t n);
man手册描述:memcpy()函数从内存区域src复制n个字节到内存区域dest。内存区域不能重叠。如果内存区域重复使用memmove
memcpy实现
void *memcpy(void *dest, const void *src, size_t n)
{
char *dp = dest;
const char *sp = src;
while (n--)
*dp++ = *sp++;
return dest;
}
memmove函数原型
void *memmove(void *dest, const void *src, size_t n);
man手册描述:memmove()函数将n个字节从内存区域src复制到内存区域dest
首先将字节复制到不重叠的src或dest的临时数组中,然后将这些字节从临时数组复制到dest。
memmove实现
```handlebars
void *memmove(void *dest, const void *src, size_t n)
{
unsigned char tmp[n];
memcpy(tmp,src,n);
memcpy(dest,tmp,n);
return dest;
}
由此可见memcpy的速度比memmove快一点,如果使用者可以确定内存不会重叠,则可以选用memcpy,否则memmove更安全一些。
来源:CSDN
作者:kiteee
链接:https://blog.csdn.net/weixin_38015022/article/details/103456946