重複の可能性:
Cで範囲外の配列インデックス
ローカル変数のメモリにそのスコープ外でアクセスできますか?
C範囲外エラーなし
このコードスニペットを試していますが、
#include <stdio.h>
main(){
int a[2],i;
a[5] = 12;
for(i=0;i<10;i++){
printf("%d\n", a[i]);
}
return 0;
}
それは私に出力を与えます:
1053988144
32767
0
3
0
12
-1267323827
32716
0
0
なぜa[5]にアクセスできるのですか?ランタイムエラーを介してそれをすべきではありませんか?