上級 › Segmentation fault(配列の範囲外への書き込み) › パターン5
Segmentation fault(配列の範囲外への書き込み)
配列の宣言サイズを大きく超えた添字に書き込むと、プロセスに割り当てられていないメモリ領域に触れてクラッシュします。
1 #include <stdio.h> 2 3 int main(void) { 4 int vals[4]; 5 vals[_________] = 7; ^ 6 printf("%d\n", vals[0]); 7 return 0; 8 }
Segmentation fault
空欄を埋めてコンパイル・実行を通す
配列が小さいほど、大きくずれた添字でメモリ保護違反を起こしやすくなります。
次の問題