Code Fix

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

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

出題モード

このモードで始める

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

すべての問題

エラー難易度種別
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 初級コンパイル
error: 'cout' was not declared in this scope; did you mean 'std::cout'? の原因と直し方 #1 初級コンパイル
error: 'cout' was not declared in this scope; did you mean 'std::cout'? の原因と直し方 #2 初級コンパイル
error: 'cout' was not declared in this scope; did you mean 'std::cout'? の原因と直し方 #3 初級コンパイル
C++でerror: missing terminating " character が出る原因と直し方 #1 初級コンパイル
C++でerror: missing terminating " character が出る原因と直し方 #2 初級コンパイル
C++でerror: missing terminating " character が出る原因と直し方 #3 初級コンパイル
error: invalid conversion from 'const char*' to 'char' の原因と直し方 #1 初級コンパイル
error: invalid conversion from 'const char*' to 'char' の原因と直し方 #2 初級コンパイル
error: invalid conversion from 'const char*' to '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 初級コンパイル
error: ISO C++ forbids comparison between pointer and integer の原因と直し方 #1 初級コンパイル
error: ISO C++ forbids comparison between pointer and integer の原因と直し方 #2 初級コンパイル
error: ISO C++ forbids comparison between pointer and integer の原因と直し方 #3 初級コンパイル
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 中級ロジック
terminate called after throwing an instance of 'std::out_of_range' の原因と直し方 #1 中級実行時
terminate called after throwing an instance of 'std::out_of_range' の原因と直し方 #2 中級実行時
terminate called after throwing an instance of 'std::out_of_range' の原因と直し方 #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 中級コンパイル
error: no matching function for call to 'Class::Class()' の原因と直し方 #1 中級コンパイル
error: no matching function for call to 'Class::Class()' の原因と直し方 #2 中級コンパイル
error: no matching function for call to 'Class::Class()' の原因と直し方 #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 中級ロジック
undefined reference to 'Class::member' の原因と直し方(staticメンバ変数) #1 中級コンパイル
undefined reference to 'Class::member' の原因と直し方(staticメンバ変数) #2 中級コンパイル
undefined reference to 'Class::member' の原因と直し方(staticメンバ変数) #3 中級コンパイル
範囲for文で要素をコピーしてしまい変更が反映されないバグ #1 中級ロジック
範囲for文で要素をコピーしてしまい変更が反映されないバグ #2 中級ロジック
範囲for文で要素をコピーしてしまい変更が反映されないバグ #3 中級ロジック
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 上級ロジック
error: no matching function for call to '...'(テンプレートの型推論失敗)の原因と直し方 #1 上級コンパイル
error: no matching function for call to '...'(テンプレートの型推論失敗)の原因と直し方 #2 上級コンパイル
error: no matching function for call to '...'(テンプレートの型推論失敗)の原因と直し方 #3 上級コンパイル
terminate called after throwing an instance of '...' の原因と直し方 #1 上級実行時
terminate called after throwing an instance of '...' の原因と直し方 #2 上級実行時
terminate called after throwing an instance of '...' の原因と直し方 #3 上級実行時
広告
広告スロット(未設定)

エラーの種類について

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

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

初級から順に解く

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