memmove
和 memcpy
有什么区别?您通常使用哪一种?如何使用?
最佳答案
使用memcpy
,目标完全不能与源重叠。使用 memmove
可以。这意味着 memmove
可能比 memcpy
稍微慢一点,因为它不能做出相同的假设。
例如,memcpy
可能总是从低位向高位复制地址。如果目标在源之后重叠,这意味着某些地址将在复制之前被覆盖。 memmove
会检测到这一点并在另一个方向上复制——在这种情况下是从高到低。但是,检查这一点并切换到另一种(可能效率较低的)算法需要时间。
关于c - memmove 和 memcpy 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1201319/