memcpy内存重叠的解决

内存区域重叠是指内存区域 [src, src+count)和内存区域 [dst, dst+count)有重叠。

memcpy只是简单的从前往后拷贝,没有考虑内存有重叠的情况,如果内存有重叠,其行为是不确定的。
memmove()函数在memcpy()函数的基础上加入了对内存重叠拷贝的处理;引入了倒序拷贝的方式处理内存重叠的某些情况;保证拷贝的正确性;

一般来说,如果自己能确定拷贝内存没有重叠,用 memcpy比用 memmove更高效,如果有重叠,则只能用 memmove

ref:

memmove 和 memcpy的区别以及处理内存重叠问题_码城的博客-CSDN博客_memcpy内存重叠

write-bug

memcpy内存重叠的解决 - wangicter的博客 - 博客园

memcpy内存重叠的解决 - CodeAntenna

你可能感兴趣的:(c/c++,大数据)