我知道,如果有重叠,我应该使用memmove,但是我无法想象sprintf (或者memcpy )是如何编码的,这样它就会遇到问题。
发布于 2022-03-02 11:35:58
来源和目标显然是重叠的。所以,是的,这很重要。
发布于 2022-03-02 12:40:33
C标准是明确的,所以您不应该对如何实现memcpy做出任何假设。想象一下这样一个体系结构,在这个体系结构中,可以更有效地读取内存,而不是顺序读取。memcpy的实现者可以利用不重叠的约束发出CPU指令,这些指令一次以不确定的顺序移动多个单词,因此在读取源字节之前有可能覆盖它们。
https://stackoverflow.com/questions/71321579
复制相似问题