memcpy vs memmove
memcpy 和 memmove 都可用于复制一段内存。
它们之间的区别很简单:
-
memmove更安全:当源内存块和目标内存块存在重叠区域时,memcpy的行为是未定义的。它可能崩溃或产生错误数据。而且在debug 和 release 模式下的表现各不相同。 -
memcpy更快。
这是两种不同编程思想的实现。一种更注重安全, 一种更注重效率。
下面是两个方法可能的实现方式.
1 | void memmove(void *dest, void *src, size_t n) |
在编程的时候,应该更多地考虑使用 memmove 而不是 memcpy