memmove函数和memcpy函数都是在内存复制任意类型的,但是它俩也有区别。当源区域和目标区域有重复的,memmove函数会复制缓冲区重叠的部分,而memcpy相反,会报出未知错误。
下面给出两个函数的实现
首先,memmove函数。
实现的基本原理如下图。
具体代码如下:
void * my_memmove(void *dst,void *src,int count)
{
char *_dst=(char *)dst;//void*不能做运算,所以转成char*
char *_src=(char *)src;