C语言 memcpy&memmove 操作同一个数组
这篇文章已经写的相当详细了探究一下:使用memcpy函数能不能自己拷贝自己
简单归纳下两个函数功能:
memcpy拷贝逻辑固定为从左至右,按字节循环拷贝,但当操作同一数组时存在源地址与目的地地址前后顺序差异导致数据被异常覆盖的问题。
memmove拷贝逻辑相对复杂,他会判定源地址和目的地址谁前谁后来决定使用从前到后复制还是从后到前循环拷贝来规避数据异常覆盖问题。
总结来说
不同数组间操作两者效果相同,因为不会涉及到重叠问题;对同一个数据进行数据移动又不想引入中间数组使用memmove。
文章作者:四文鱼Max
本文链接:https://blog.awolon.fun/archives/c-memcpy-memmove.html
许可协议:CC BY-SA 4.0