c - memmove 和 memcpy 有什么区别?

标签 c memcpy memmove

memmovememcpy 有什么区别?您通常使用哪一种?如何使用?

最佳答案

使用memcpy,目标完全不能与源重叠。使用 memmove 可以。这意味着 memmove 可能比 memcpy 稍微慢一点,因为它不能做出相同的假设。

例如,memcpy 可能总是从低位向高位复制地址。如果目标在源之后重叠,这意味着某些地址将在复制之前被覆盖。 memmove 会检测到这一点并在另一个方向上复制——在这种情况下是从高到低。但是,检查这一点并切换到另一种(可能效率较低的)算法需要时间。

关于c - memmove 和 memcpy 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1201319/

相关文章:

c - 如何在gcc中编译带有线程的C程序?

c - Arduino乘法错误,+ve * +ve变成-ve

c - 如何从 .t​​xt 中读取单独的数字/行并将它们输入到 2 个不同的数组

将二维数组中的字符组合成C中的字符串

c - 从第三个连接开始Winsock错误10038

c - memcpy正确的实现方式

使用 memcpy 将动态结构数组的内容复制到另一个动态数组中

arrays - 将数组从某个位置复制到c中的另一个数组

c - 释放 malloc 的一部分

c - 在每行末尾添加新的行终止符