为什么以下程序不打印垃圾值.据我所知,数组在堆栈上分配内存(即在编译时)和堆栈内存包含一些垃圾值.但它不是打印垃圾值.它打印1.只有当函数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;
}
Run Code Online (Sandbox Code Playgroud)
分配给数组b的内存是否与之前分配给数组a的内存相同?