タグ

gccに関するkariaのブックマーク (1)

  • Segmentation Fault の調べ方

    プログラムを書いていると,Segmentation fault や Bus error に なってしまうことがよくあります.このようなエラーの原因はどのようにして 探ればよいのでしょうか? 例えば,このようなプログラムがあります. #include <stdio.h> #define MAX 10 int main(){ int *p; int buf[MAX]; int i; p=buf; for(i=0; i<=MAX/2; i++){ buf[i*2+1]=0; } printf("%d\n", *p); return 0; } これは配列 buf の添字が奇数であるものに 0 を代入します。 また、ポインタ変数 p は配列 buf の先頭要素 を指し、プログラムの最後に先頭要素を表示させています。 ところが,これを実行すると Segmentation fault になります。 $

  • 1