gpt4 book ai didi

c - memmove 实际上是 "move"一 block 内存并在源头留下零吗?

转载 作者:行者123 更新时间:2023-12-02 07:47:26 29 4
gpt4 key购买 nike

Possible Duplicate:
memcpy vs memmove

是否 memmove实际上“移动”了一 block 内存?如果是这样,它会留下零吗?或者,它就像 memcpy ?我正在查看手册页,但我不相信我的假设是正确的。如果我想使用 memmove 移动一 block 内存,我是否必须手动将我移动的那 block 内存清零?

最佳答案

memmove 与清除旧内存无关,事实上,只有在您想使用 memmove 的情况下,清除旧内存会破坏您刚刚复制的数据!这是因为 memmove 仅在您期望源和目标范围重叠时才有用。

通常,如果您发现自己需要 memmove,则表明您的设计存在严重的基本效率低下。例如,新的 C 程序员通常会尝试使用 memmove 来删除字符串的前几个字符(例如 memmove(s, &s[1], len))而不是不仅仅是使用 s+1&s[1] 来处理字符串的尾部。包含 memmove 的算法的性能很少比 O(n^2) 好。

关于c - memmove 实际上是 "move"一 block 内存并在源头留下零吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5877173/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com