次のプログラムがガベージ値を出力しない理由。私が知っているように、スタックに割り当てられたメモリ(つまりコンパイル時)とスタックメモリには、ガベージ値が含まれています。ただし、ガベージ値は出力されません。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;
}
アレイbに割り当てられたメモリは、以前にアレイaに割り当てられたメモリと同じですか?