C言語入門:④-5 バグ解析参考【補助知識・参考】

本記事では、実際によく表示されるエラーメッセージと、その意味・原因・確認方法を整理します。
エラーが出たときに、どこを確認すればよいかを理解することを目的としています。

本記事の目的・学習目標

本記事の学習目標は次の2点です。

  • よくあるエラーメッセージの意味を理解する
  • エラーが出たときの確認ポイントを理解する

プログラムは「動いたかどうか」ではなく、「継続して動かせるかどうか」が重要になります。

エラーメッセージを理解することは、「たまたま動いている状態」ではなく、「動かせる状態」にするために必要な知識となります。

よくあるエラーメッセージと確認方法

C言語そのものに、すべて共通の固定エラーコード一覧があるわけではありません。

そのため、「よくあるエラーメッセージ集」として、以下に10個のエラーメッセージをまとめています。

  • ① expected ‘;’ before …
  • ② implicit declaration of function
  • ③ undeclared identifier
  • ④ subscripted value is neither array nor pointer
  • ⑤ Segmentation fault
  • ⑥ division by zero
  • ⑦ NULL
  • ⑧ EOF
  • ⑨ -1
  • ⑩ No such file or directory

① expected ‘;’ before …

意味
セミコロン ; が必要な位置にない状態

主な原因
文の終わりに ; を付け忘れている

確認点
エラーが出ている行の直前の行を確認する

② implicit declaration of function

意味
関数の情報がないまま呼び出している状態

主な原因
#include の不足
関数宣言の不足

確認点
ヘッダファイルと関数の宣言を確認する

③ undeclared identifier

意味
宣言されていない名前を使用している状態

主な原因
変数名の打ち間違い
定義前に使用している

確認点
変数名のスペルと定義位置を確認する

④ subscripted value is neither array nor pointer

意味
配列でもポインタでもないものに [] を使用している

主な原因
変数の型の理解違い

確認点
その変数の型を確認する

⑤ Segmentation fault

意味
不正なメモリ領域にアクセスした状態

主な原因
ポインタの扱いミス
NULL参照
配列の範囲外アクセス

確認点
ポインタ、配列の範囲、NULLチェックを確認する

⑥ division by zero

意味
0で割り算を行おうとしている

主な原因
計算前の値確認不足

確認点
割る数が0になっていないか確認する

⑦ NULL

意味
有効なアドレスがないことを表す値

主な原因
ポインタの未設定
メモリ確保失敗

確認点
使用前にNULLかどうか確認する

⑧ EOF

意味
入力やファイルの終わりを表す値

主な原因
読み込みが終了している

確認点
入力処理やファイル読み込みの戻り値を確認する

⑨ -1

意味
処理の失敗を表す戻り値として使われることがある

主な原因
関数の処理失敗

確認点
使用している関数の仕様を確認する

⑩ No such file or directory

意味
指定したファイルやヘッダが存在しない

主な原因
ファイル名の間違い
パスの間違い
#include の対象が存在しない

確認点
ファイル名と場所を確認する

まとめ

本記事で紹介したエラー文は参考としてご使用ください。

関連記事

◀ 前回の記事
C言語入門:④-4 用語辞典【補助知識】

◆同じカテゴリの記事一覧(概要ページ)
C言語入門シリーズ:④-0 補助知識【概要】

◆シリーズの記事一覧
C言語入門シリーズ:プログラムの基本構造【記事一覧】

2 COMMENTS

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です