本記事では、実際によく表示されるエラーメッセージと、その意味・原因・確認方法を整理します。
エラーが出たときに、どこを確認すればよいかを理解することを目的としています。
本記事の目的・学習目標
本記事の学習目標は次の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言語入門シリーズ:プログラムの基本構造【記事一覧】

[…] ▶ 次の記事C言語入門:④-5 バグ解析参考【補助知識・参考】 […]
[…] C言語入門:④-5 バグ解析参考【補助知識・参考】 […]