内存区域重叠是指内存区域 [src,src+count)和内存区域 [dst, dst+count)有重叠。memcpy只是简单的从前往后拷贝,没有考虑内存有重叠的情况,如果内存有重叠,其行为是不确定的。
memmove()函数在memcpy()函数的基础上加入了对内存重叠拷贝的处理;引入了倒序拷贝的方式处理内存重叠的某些情况;保证拷贝的正确性;
一般来说,如果自己能确定拷贝内存没有重叠,用 memcpy比用 memmove更高效,如果有重叠,则只能用 memmove
内存重叠的两种情况

void *memcpy(void *dst, const void *src, size_t count);
void *memmove(void *dst, const void *src, size_t count

最低0.47元/天 解锁文章
1632

被折叠的 条评论
为什么被折叠?



