【发布时间】:2015-05-29 10:06:12
【问题描述】:
#include<stdio.h>
void foo(){
int i;
printf("%d\n",i); //should print garbage value
}
void main(){
foo();
}
foo 应该打印垃圾值i。但相反,它打印的是零。这是为什么?我使用的是 gcc 版本 4.9.2。
【问题讨论】:
-
零也可能是垃圾值。
-
调试构建 --> 分配的内存填充为零?使用发布配置检查它。并且 int 在堆栈上.. 使用 new 创建一个 int 数组
-
在某些(想象的)架构上,编译您的代码可能会将天花板涂成黄色......并生成一个可执行文件,运行时会将您银行帐户中的钱转移到我的帐户中。
标签: c gcc default undefined-behavior garbage