如果没有任何命令,这个变量如何变化?

时间:2014-07-01 10:35:16

标签: variables printf

enter image description here

如您所见,缓冲区[0]的值在行sprintf(tittle, %03d.jpg", images);时发生变化,这与缓冲区无关。缓冲区中的所有值都已更改。我经历了我的代码一千次,我终于发现了这一点。真的很令人沮丧!有什么解释吗?

1 个答案:

答案 0 :(得分:2)

您为title分配了4个字符,但是您尝试将8个字符(包括空终止符)写入其中。这是不合适的,C允许你用脚比喻自己。在大多数情况下,如果不是所有系统,它都会破坏记忆中的下一个系统,在你的情况下,它显然是buffer的开头。