【6日でできるC言語入門】エラーへの対処

C言語プログラミングでは、必ず「エラー」や「バグ」といった問題に遭遇します。
これらを的確に見つけ、正しく修正する力は、プログラマーとしてとても大切です。
 ここでは、エラーの種類や発生原因、C言語のコンパイラが出すエラーメッセージの読み方、典型的な修正方法について、サンプルプログラムとともに解説します。

1.エラーの発生と修正

1.1. エラーが発生する例とエラーメッセージ

 プログラムに文法ミスやタイプミスがある場合、C言語のコンパイラはエラーメッセージを表示して、どこに問題があるかを教えてくれます。

サンプルプログラム(わざと間違いを含む)

プロジェクト/ファイル名: Lesson13_1/main.c

#include <stdio.h>

int main(void) {
    printf("こんにちは");
    prinf("世界\n");
    return 0;
}

実行時のエラーメッセージ例(Visual Studioの場合)

コード 説明
LNK2019 未解決の外部シンボル _print が関数 _main で参照されました。
LNK1120 1 件の未解決の外部参照

解説

  • prinf という誤った関数名を書いてしまったため、printf でなければなりません。

1.2. エラーの修正例

上記のプログラムを正しく修正しましょう。

修正版サンプル

#include <stdio.h>

int main(void) {
    printf("こんにちは");
    printf("世界\n");
    return 0;
}

実行結果

こんにちは世界

※改行がないため、2つの文字列が連続して表示されています。

2.エラーとバグの違い・バグの例

2.1. エラーとバグ

用語説明
エラープログラムの文法的な誤りpritnf など、関数名のミスなど
バグプログラムの論理的な誤りや設計ミス計算式の間違い、想定外の動作になる場合
  • エラー
    → コンパイラが気付いて指摘してくれる誤り(コンパイルできない)。
  • バグ
    → プログラムは動くが、期待通りに動かない問題(論理ミスなど)。

2.2. バグの例

プロジェクト/ファイル名: Lesson13_2/main.c

#include <stdio.h>

int main(void) {
    int a = 10;
    int b = 0;
    int c = a / b; // 0で割るミス(実行時エラーや意図しない動作)
    printf("c=%d\n", c);
    return 0;
}

ポイント

  • バグは「実行できてしまう」場合もあるため、自分で動作確認(テスト)が大切です。

3.デバッグの基本

3.1. デバッグとは?

「デバッグ(Debug)」とは、プログラムのエラーやバグを見つけて修正する作業のことです。
Visual StudioなどのIDEでは、ブレークポイントを設定して実行途中で停止し、変数の値や処理の流れを細かく確認できます。

3.2. エラー対処・デバッグのコツ

  • エラーメッセージは英語でもしっかり読む(翻訳サイトも活用)。
  • 行番号・関数名・内容を確認する。
  • タイプミスやスペルミスが多いので、冷静に見直す。
  • 論理バグの場合はprintfで途中の値を表示してみる。

まとめ

  • エラーはコンパイラが教えてくれる文法ミスバグは動作上の間違い。
  • エラーメッセージを読んで、間違いの箇所と内容を理解し、修正することが大切。
  • バグは動作検証・デバッグで早めに発見・修正しよう。
  • 初心者は、こまめにコンパイル・実行し、エラーの種類や意味に慣れるのがコツです。