为什么下面的程序不打印垃圾值。据我所知,堆栈上分配的数组内存(即在编译时)和堆栈内存包含一些垃圾值。但它不打印垃圾值。它正在打印 1's 。仅当在函数 g() 中,数组 b 的大小 > 数组 a 的大小时,它才会打印垃圾值。当 g() 中的数组大小 > 数组 a 的大小时,它会打印 12 个 1(在这种情况下)并作为垃圾值休息。
void f()
{
int a[12],i=0;
for(i=0;i<12;i++)
a[i]=1;
}
void g()
{
int b[12],i=0;
for(i=0;i<12;i++)
printf("%d\n",b[i]);
}
int main()
{
f();
g();
return 0;
}
分配给数组 b 的内存是否与之前分配给数组 a 的内存相同?