内存区域重叠是指内存区域 [src, src+count)和内存区域 [dst, dst+count)有重叠。
memcpy只是简单的从前往后拷贝,没有考虑内存有重叠的情况,如果内存有重叠,其行为是不确定的。
memmove()函数在memcpy()函数的基础上加入了对内存重叠拷贝的处理;引入了倒序拷贝的方式处理内存重叠的某些情况;保证拷贝的正确性;
一般来说,如果自己能确定拷贝内存没有重叠,用 memcpy比用 memmove更高效,如果有重叠,则只能用 memmove
ref:
memmove 和 memcpy的区别以及处理内存重叠问题_码城的博客-CSDN博客_memcpy内存重叠
版权声明:本文为wwwlyj123321原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。