在以下场景中使用是否安全memcpy
,其中将数据从较大的索引复制到一个块到同一块中的较小索引。例如:
char buf[100];
// fill in the data ...
memcpy(&buf[10], &buf[15], 10);
在上述情况下,我不关心来自位置 10 - 19 的数据,如果它被覆盖就可以了。有什么理由应该避免和memmove
使用它吗?
编辑:对不起,我没有正确传达我的意图,所以假设我有来自索引 10 - 19 的数据和来自索引 15 - 24 的数据,我想从 15 - 24 复制 10 - 19 的数据,我不在乎关于 10 到 19 的数据,memcpy
即使它们重叠,对我们来说安全吗?