Code Fix

C++エラー 練習問題 180問(全問無料)

コンパイルエラー・実行時エラー・ロジックの誤りを、空欄補充で直す練習問題です。登録不要でその場で解けます。

エラーメッセージで探す

今出ているエラーメッセージをそのまま貼り付けてください。行番号や変数名が違っていても、エラーの種類が一致すれば見つかります。

エラー難易度種別
error: expected ',' or ';' before ... の原因と直し方 #1 初級コンパイル
error: expected ',' or ';' before ... の原因と直し方 #2 初級コンパイル
error: expected ',' or ';' before ... の原因と直し方 #3 初級コンパイル
error: expected '}' at end of input の原因と直し方 #1 初級コンパイル
error: expected '}' at end of input の原因と直し方 #2 初級コンパイル
error: expected '}' at end of input の原因と直し方 #3 初級コンパイル
error: 'x' was not declared in this scope の原因と直し方 #1 初級コンパイル
error: 'x' was not declared in this scope の原因と直し方 #2 初級コンパイル
error: 'x' was not declared in this scope の原因と直し方 #3 初級コンパイル
error: 'cout' is not a member of 'std' の原因と直し方 #1 初級コンパイル
error: 'cout' is not a member of 'std' の原因と直し方 #2 初級コンパイル
error: 'cout' is not a member of 'std' の原因と直し方 #3 初級コンパイル
'cout' was not declared エラー(std::忘れ)の原因 #1 初級コンパイル
'cout' was not declared エラー(std::忘れ)の原因 #2 初級コンパイル
'cout' was not declared エラー(std::忘れ)の原因 #3 初級コンパイル
文字列リテラルの閉じ忘れで出るエラーの原因と直し方 #1 初級コンパイル
文字列リテラルの閉じ忘れで出るエラーの原因と直し方 #2 初級コンパイル
文字列リテラルの閉じ忘れで出るエラーの原因と直し方 #3 初級コンパイル
'const char*' を char に代入したときのエラーの原因 #1 初級コンパイル
'const char*' を char に代入したときのエラーの原因 #2 初級コンパイル
'const char*' を char に代入したときのエラーの原因 #3 初級コンパイル
if文で = と == を取り違えたときの挙動 #1 初級ロジック
if文で = と == を取り違えたときの挙動 #2 初級ロジック
if文で = と == を取り違えたときの挙動 #3 初級ロジック
int同士の割り算で小数点以下が消えるバグ #1 初級ロジック
int同士の割り算で小数点以下が消えるバグ #2 初級ロジック
int同士の割り算で小数点以下が消えるバグ #3 初級ロジック
配列の添字を1つずらしてしまうoff-by-oneバグ #1 初級ロジック
配列の添字を1つずらしてしまうoff-by-oneバグ #2 初級ロジック
配列の添字を1つずらしてしまうoff-by-oneバグ #3 初級ロジック
int型のゼロ除算で実行時に落ちる原因 #1 初級実行時
int型のゼロ除算で実行時に落ちる原因 #2 初級実行時
int型のゼロ除算で実行時に落ちる原因 #3 初級実行時
error: no match for 'operator>>' の原因と直し方 #1 初級コンパイル
error: no match for 'operator>>' の原因と直し方 #2 初級コンパイル
error: no match for 'operator>>' の原因と直し方 #3 初級コンパイル
error: '::main' must return 'int' の原因と直し方 #1 初級コンパイル
error: '::main' must return 'int' の原因と直し方 #2 初級コンパイル
error: '::main' must return 'int' の原因と直し方 #3 初級コンパイル
int と文字列リテラルの比較で出るエラーの原因 #1 初級コンパイル
int と文字列リテラルの比較で出るエラーの原因 #2 初級コンパイル
int と文字列リテラルの比較で出るエラーの原因 #3 初級コンパイル
error: expected ',' or ';' before ... の原因と直し方 #4 初級コンパイル
error: expected ',' or ';' before ... の原因と直し方 #5 初級コンパイル
error: expected '}' at end of input の原因と直し方 #4 初級コンパイル
error: expected '}' at end of input の原因と直し方 #5 初級コンパイル
error: 'x' was not declared in this scope の原因と直し方 #4 初級コンパイル
error: 'x' was not declared in this scope の原因と直し方 #5 初級コンパイル
error: 'cout' is not a member of 'std' の原因と直し方 #4 初級コンパイル
error: 'cout' is not a member of 'std' の原因と直し方 #5 初級コンパイル
'cout' was not declared エラー(std::忘れ)の原因 #4 初級コンパイル
'cout' was not declared エラー(std::忘れ)の原因 #5 初級コンパイル
文字列リテラルの閉じ忘れで出るエラーの原因と直し方 #4 初級コンパイル
文字列リテラルの閉じ忘れで出るエラーの原因と直し方 #5 初級コンパイル
'const char*' を char に代入したときのエラーの原因 #4 初級コンパイル
'const char*' を char に代入したときのエラーの原因 #5 初級コンパイル
if文で = と == を取り違えたときの挙動 #4 初級ロジック
if文で = と == を取り違えたときの挙動 #5 初級ロジック
int同士の割り算で小数点以下が消えるバグ #4 初級ロジック
int同士の割り算で小数点以下が消えるバグ #5 初級ロジック
配列の添字を1つずらしてしまうoff-by-oneバグ #4 初級ロジック
配列の添字を1つずらしてしまうoff-by-oneバグ #5 初級ロジック
int型のゼロ除算で実行時に落ちる原因 #4 初級実行時
int型のゼロ除算で実行時に落ちる原因 #5 初級実行時
error: no match for 'operator>>' の原因と直し方 #4 初級コンパイル
error: no match for 'operator>>' の原因と直し方 #5 初級コンパイル
error: '::main' must return 'int' の原因と直し方 #4 初級コンパイル
error: '::main' must return 'int' の原因と直し方 #5 初級コンパイル
int と文字列リテラルの比較で出るエラーの原因 #4 初級コンパイル
int と文字列リテラルの比較で出るエラーの原因 #5 初級コンパイル
error: invalid conversion from 'int*' to 'int' の原因と直し方 #1 中級コンパイル
error: invalid conversion from 'int*' to 'int' の原因と直し方 #2 中級コンパイル
error: invalid conversion from 'int*' to 'int' の原因と直し方 #3 中級コンパイル
nullptrの参照外しでSegmentation faultになる原因 #1 中級実行時
nullptrの参照外しでSegmentation faultになる原因 #2 中級実行時
nullptrの参照外しでSegmentation faultになる原因 #3 中級実行時
C++でerror: assignment of read-only variable が出る原因と直し方 #1 中級コンパイル
C++でerror: assignment of read-only variable が出る原因と直し方 #2 中級コンパイル
C++でerror: assignment of read-only variable が出る原因と直し方 #3 中級コンパイル
参照渡しのつもりが値渡しで変更が反映されないバグ #1 中級ロジック
参照渡しのつもりが値渡しで変更が反映されないバグ #2 中級ロジック
参照渡しのつもりが値渡しで変更が反映されないバグ #3 中級ロジック
vector::at() の範囲外アクセスで terminate する原因 #1 中級実行時
vector::at() の範囲外アクセスで terminate する原因 #2 中級実行時
vector::at() の範囲外アクセスで terminate する原因 #3 中級実行時
error: is private within this context の原因と直し方 #1 中級コンパイル
error: is private within this context の原因と直し方 #2 中級コンパイル
error: is private within this context の原因と直し方 #3 中級コンパイル
error: expected ';' after class definition の原因と直し方 #1 中級コンパイル
error: expected ';' after class definition の原因と直し方 #2 中級コンパイル
error: expected ';' after class definition の原因と直し方 #3 中級コンパイル
引数なしコンストラクタが無いときのエラーの原因 #1 中級コンパイル
引数なしコンストラクタが無いときのエラーの原因 #2 中級コンパイル
引数なしコンストラクタが無いときのエラーの原因 #3 中級コンパイル
error: call of overloaded '...' is ambiguous の原因と直し方 #1 中級コンパイル
error: call of overloaded '...' is ambiguous の原因と直し方 #2 中級コンパイル
error: call of overloaded '...' is ambiguous の原因と直し方 #3 中級コンパイル
switch文でbreakを忘れて後続のcaseまで実行されるバグ #1 中級ロジック
switch文でbreakを忘れて後続のcaseまで実行されるバグ #2 中級ロジック
switch文でbreakを忘れて後続のcaseまで実行されるバグ #3 中級ロジック
配列と、先頭要素へのポインタでsizeofの結果が変わってしまう理由 #1 中級ロジック
配列と、先頭要素へのポインタでsizeofの結果が変わってしまう理由 #2 中級ロジック
配列と、先頭要素へのポインタでsizeofの結果が変わってしまう理由 #3 中級ロジック
staticメンバ変数の undefined reference の原因 #1 中級コンパイル
staticメンバ変数の undefined reference の原因 #2 中級コンパイル
staticメンバ変数の undefined reference の原因 #3 中級コンパイル
範囲for文で要素をコピーしてしまい変更が反映されないバグ #1 中級ロジック
範囲for文で要素をコピーしてしまい変更が反映されないバグ #2 中級ロジック
範囲for文で要素をコピーしてしまい変更が反映されないバグ #3 中級ロジック
error: invalid conversion from 'int*' to 'int' の原因と直し方 #4 中級コンパイル
error: invalid conversion from 'int*' to 'int' の原因と直し方 #5 中級コンパイル
nullptrの参照外しでSegmentation faultになる原因 #4 中級実行時
nullptrの参照外しでSegmentation faultになる原因 #5 中級実行時
C++でerror: assignment of read-only variable が出る原因と直し方 #4 中級コンパイル
C++でerror: assignment of read-only variable が出る原因と直し方 #5 中級コンパイル
参照渡しのつもりが値渡しで変更が反映されないバグ #4 中級ロジック
参照渡しのつもりが値渡しで変更が反映されないバグ #5 中級ロジック
vector::at() の範囲外アクセスで terminate する原因 #4 中級実行時
vector::at() の範囲外アクセスで terminate する原因 #5 中級実行時
error: is private within this context の原因と直し方 #4 中級コンパイル
error: is private within this context の原因と直し方 #5 中級コンパイル
error: expected ';' after class definition の原因と直し方 #4 中級コンパイル
error: expected ';' after class definition の原因と直し方 #5 中級コンパイル
引数なしコンストラクタが無いときのエラーの原因 #4 中級コンパイル
引数なしコンストラクタが無いときのエラーの原因 #5 中級コンパイル
error: call of overloaded '...' is ambiguous の原因と直し方 #4 中級コンパイル
error: call of overloaded '...' is ambiguous の原因と直し方 #5 中級コンパイル
switch文でbreakを忘れて後続のcaseまで実行されるバグ #4 中級ロジック
switch文でbreakを忘れて後続のcaseまで実行されるバグ #5 中級ロジック
配列と、先頭要素へのポインタでsizeofの結果が変わってしまう理由 #4 中級ロジック
配列と、先頭要素へのポインタでsizeofの結果が変わってしまう理由 #5 中級ロジック
staticメンバ変数の undefined reference の原因 #4 中級コンパイル
staticメンバ変数の undefined reference の原因 #5 中級コンパイル
範囲for文で要素をコピーしてしまい変更が反映されないバグ #4 中級ロジック
範囲for文で要素をコピーしてしまい変更が反映されないバグ #5 中級ロジック
free(): double free detected の原因と直し方(C++のdelete) #1 上級実行時
free(): double free detected の原因と直し方(C++のdelete) #2 上級実行時
free(): double free detected の原因と直し方(C++のdelete) #3 上級実行時
new[]とdeleteの不一致が「たまたま動いてしまう」危険性 #1 上級ロジック
new[]とdeleteの不一致が「たまたま動いてしまう」危険性 #2 上級ロジック
new[]とdeleteの不一致が「たまたま動いてしまう」危険性 #3 上級ロジック
ローカル変数への参照を返すとSegmentation faultになる原因 #1 上級実行時
ローカル変数への参照を返すとSegmentation faultになる原因 #2 上級実行時
ローカル変数への参照を返すとSegmentation faultになる原因 #3 上級実行時
delete後のポインタ使用が「たまたま動いてしまう」危険性 #1 上級ロジック
delete後のポインタ使用が「たまたま動いてしまう」危険性 #2 上級ロジック
delete後のポインタ使用が「たまたま動いてしまう」危険性 #3 上級ロジック
仮想デストラクタが無いと派生クラスのデストラクタが呼ばれない理由 #1 上級ロジック
仮想デストラクタが無いと派生クラスのデストラクタが呼ばれない理由 #2 上級ロジック
仮想デストラクタが無いと派生クラスのデストラクタが呼ばれない理由 #3 上級ロジック
派生クラスを値渡しすると情報が失われるオブジェクトスライシング #1 上級ロジック
派生クラスを値渡しすると情報が失われるオブジェクトスライシング #2 上級ロジック
派生クラスを値渡しすると情報が失われるオブジェクトスライシング #3 上級ロジック
vectorの要素をループ中に削除するとイテレータが無効化されるバグ #1 上級ロジック
vectorの要素をループ中に削除するとイテレータが無効化されるバグ #2 上級ロジック
vectorの要素をループ中に削除するとイテレータが無効化されるバグ #3 上級ロジック
テンプレートの型推論失敗で no matching function になる原因 #1 上級コンパイル
テンプレートの型推論失敗で no matching function になる原因 #2 上級コンパイル
テンプレートの型推論失敗で no matching function になる原因 #3 上級コンパイル
例外を捕まえ損ねて terminate する原因と直し方 #1 上級実行時
例外を捕まえ損ねて terminate する原因と直し方 #2 上級実行時
例外を捕まえ損ねて terminate する原因と直し方 #3 上級実行時
free(): double free detected の原因と直し方(C++のdelete) #4 上級実行時
free(): double free detected の原因と直し方(C++のdelete) #5 上級実行時
new[]とdeleteの不一致が「たまたま動いてしまう」危険性 #4 上級ロジック
new[]とdeleteの不一致が「たまたま動いてしまう」危険性 #5 上級ロジック
ローカル変数への参照を返すとSegmentation faultになる原因 #4 上級実行時
ローカル変数への参照を返すとSegmentation faultになる原因 #5 上級実行時
delete後のポインタ使用が「たまたま動いてしまう」危険性 #4 上級ロジック
delete後のポインタ使用が「たまたま動いてしまう」危険性 #5 上級ロジック
仮想デストラクタが無いと派生クラスのデストラクタが呼ばれない理由 #4 上級ロジック
仮想デストラクタが無いと派生クラスのデストラクタが呼ばれない理由 #5 上級ロジック
派生クラスを値渡しすると情報が失われるオブジェクトスライシング #4 上級ロジック
派生クラスを値渡しすると情報が失われるオブジェクトスライシング #5 上級ロジック
vectorの要素をループ中に削除するとイテレータが無効化されるバグ #4 上級ロジック
vectorの要素をループ中に削除するとイテレータが無効化されるバグ #5 上級ロジック
テンプレートの型推論失敗で no matching function になる原因 #4 上級コンパイル
テンプレートの型推論失敗で no matching function になる原因 #5 上級コンパイル
例外を捕まえ損ねて terminate する原因と直し方 #4 上級実行時
例外を捕まえ損ねて terminate する原因と直し方 #5 上級実行時
広告
広告スロット(未設定)

出題モード

まとめて解きたいときはこちら

このモードで始める

選んだモードは次の問題への移動にも適用されます。記録は端末内にのみ保存されます。

エラーの種類について

C++のエラーは大きく3種類に分かれます。コンパイルエラーはg++がソースを解析する段階で検出するもので、実行ファイルすら作られません。実行時エラーはコンパイルは通るものの、実行中にOSがプロセスを強制終了させるものです。Cと同じく、C++のプログラム自身もクラッシュ時に何もメッセージを出しません。"Segmentation fault" のような文字列は、プログラムではなくシェルが「子プロセスが異常終了した」と報告しているものです。ロジックの誤りはどちらのエラーも出ませんが結果が期待と違うもので、未定義動作によって「たまたま動いてしまう」ケースがある点もCと共通です。

最も発見が遅れるのは3つ目です。このサイトではロジックの誤りも問題に含めており、コンソール表示が赤ではなく琥珀色になります。

初級から順に解く

広告
広告スロット(未設定)