memcpy和memmove()都是C语言中的库函数在頭文件string.h中,作用是拷贝一定长度的内存的内容原型分别如下:
他们的作用是一样的,唯一的区别是当内存发生局部重叠的时候,memmove保证拷贝的结果是正确的memcpy不保证拷贝的结果的正确。
第一种情况下拷贝重叠的区域不会出现问题,内容均可以正确的被拷贝
第二种情况丅,问题出现在右边的两个字节这两个字节的原来的内容首先就被覆盖了,而且没有保存所以接下来拷贝的时候,拷贝的是已经被覆蓋的内容显然这是有问题的。
二者的c语言实现很简单有兴趣的朋友可以去看看。在实际情况下这两个函数都是用汇编实现的。