Visual C++のエラー 傾向と対策

Visual C++での開発中に遭遇するエラーについて、そのよくある原因と対策とを収集するブログです

error C4700の傾向と対策:値を初期化していない変数を使っているかも


このエントリーをはてなブックマークに追加

C++では変数を定義しただけではその変数の値は不定、つまり変数にどんな値が入っているかわかりません。値が不定な変数を使うのはバグの温床になるため、Visual Studioはデフォルトでこのような変数に対してエラーを出してくれます。

例えば以下のコード

int main() {
    int a;
    a += 3;
    return 0;
}

では、int a;した段階ではaは不定であるにもかかわらず、次の行a += 3aに3を足す処理を行ったため、以下のエラーが発生します。

 error C4700: 初期化されていないローカル変数 'a' が使用されます

エラーを消すためには、変数の定義時に適当な初期値を代入すればOKです。以下のコードは問題なくコンパイルできます。

int main() {
    int a = 0;
    a += 3;
    return 0;
}