【发布时间】:2011-08-22 16:38:46
【问题描述】:
char buffer[10];
strcat(buffer, "hi");
printf("%s", buffer);
在上面的代码中,它打印了一些奇怪的符号或数字,后跟“hi”,我知道 strcat 正在附加到缓冲区。我通常将缓冲区中的内存归零。但我很好奇为什么我通常必须这样做。
如果我在没有 strcat 的情况下执行 printf("%i", buffer);,它只会打印一个随机数。那个号码是多少?在我用任何东西填充缓冲区之前,任何人都可以解释或链接到解释缓冲区中的内容的 tut 吗?
【问题讨论】:
-
该随机数是您创建它时碰巧驻留在内存中字符缓冲区位置的任意垃圾。