在阅读有关memmove的时候,我读到它可以处理 内存重叠但是我无法获得两个字符串之间如何发生memmory重叠,并且该函数如何仍然正确复制内存块。

有帮助吗?

解决方案

“内存重叠”本身不会发生。是你可以提供的 memmove 与重叠的内存区域功能。将两个指针纳入 相同 数组,您可以轻松地将重叠的内存区域结合在一起。

当然,您还可以轻松地通过工会创建重叠的对象。

尚不清楚您在问题的第二部分中的含义(“该函数如何仍然正确复制内存块”)。您在哪里看到问题?

其他提示

 memmove(p+1, p, 42);

这需要从末尾开始移动字节。 memcpy()弄得一团糟。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top