
No.1ベストアンサー
- 回答日時:
僕も何度も出したなぁ。
ひとくちにSegmentation faultといっても、それこそさまざまな要因があるので、
これだけで原因を突き止めるのは非常に難しいです。
コンパイルはあくまで文法としてみているだけであり、
処理の流れ、メモリ確保など、プログラムそのものを見ているわけではありません。
このエラーが出るのは文法などよりもっと上位の原因なのです。
たとえばですが。
長さ10の配列があったとして、11番目以降を参照したりすると、
そういうのが出たような気がします。
ですから、変数があれば、その内容をprintf文で逐一出していき、
変な値が入っていないとか、少しずつ直していくしかないと思います。
この回答へのお礼
お礼日時:2007/01/12 19:59
ありがとうございます。
解決しました。
どうやら、プログラムの記述にミスがあり、ループがうまくいってなかったようです。
なるほど、勉強になりました。ありがとうございます。
No.2
- 回答日時:
エラーの内容としては、
確保された安全な領域以外を参照したことによるエラーと捉えても良いと思います。
例えば、配列の添え字を間違えて確保されていない部分を参照したり、ポインタの演算を間違えてまったく関係ないところを参照したりしたときにも発生します。
原因を特定するとして、
仮に、Windows上のVisualC++などでデバッグモードで実行している場合などであれば、Segmentation faultが発生しているところで停止したりするので原因の特定が楽なのですが、
それ以外の環境で調査するとしたら、#1さんが書かれているように、ところどころにprintf等を入れて、変数の内容を出力させるなどして動作確認するしかないでしょう。
上記発生原因の例を参考に、配列の添え字や、ポインタ操作の度に内容確認されてはいかがでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
End Sub が必要です。
-
Excel VABについて 下記記述が...
-
他クラスからForm1内コントロル...
-
LINK : warning LNK4039: secti...
-
Delphiでif文がうまく書けないです
-
43:syntax error at end of input
-
typedef による2重定義
-
Texに詳しい方よろしくお願いい...
-
対応する関数ヘッダーがありません
-
HEW3とBorlandC++でクラス定義...
-
ISLispのsetq関数について教え...
-
C言語のプログラムが実行できま...
-
フォートランのエラーについて...
-
フォートラン(fortran)のエラー...
-
教えて下さい
-
特定のPCだけ動作しないVBAマク...
-
メッセージボックスのOKボタ...
-
エクセルで特定の列が0表示の場...
-
配列数式の解除
-
一つのTeratermのマクロで複数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
End Sub が必要です。
-
Excel VABについて 下記記述が...
-
フォートランのエラーについて...
-
intel fortranのエラーで困って...
-
他クラスからForm1内コントロル...
-
ラズパイ上の、pythonのエラー...
-
初歩的な質問ですが・・・
-
プロシージャ名のところでエラ...
-
python プログラミング vim
-
C言語の質問です。
-
Texに詳しい方よろしくお願いい...
-
構造体のポインタ参照
-
C++のことで・・教えてください。
-
VBでエラー'ActiveX component ...
-
ダブルコートのエスケープ
-
ISLispのsetq関数について教え...
-
typedef による2重定義
-
43:syntax error at end of input
-
解説サイトに従ったfortran並列...
-
コンパイル時のエラー
おすすめ情報