memmove和memcpy相比,src和des有重叠的情况下,memmove可以保证数据的完整性
memmove保证的原因很简单,就是针对重叠的情况做特殊处理,因此速度会比memcpy慢一些
具体的算法并不难想啊,画个图,分两种情况
1 src的尾部和des的头部重合
从src尾部开始,以地址 -- 的方式copy到des
2 src的头部和des的尾部重合
从src头部开始,以地址 ++ 的方式copy到des
memmove保证的原因很简单,就是针对重叠的情况做特殊处理,因此速度会比memcpy慢一些
具体的算法并不难想啊,画个图,分两种情况
1 src的尾部和des的头部重合
从src尾部开始,以地址 -- 的方式copy到des
2 src的头部和des的尾部重合
从src头部开始,以地址 ++ 的方式copy到des