C++ ランタイムエラーの原因
C++ランタイムエラーの原因として考えられるものは次のとおりです。
- メモリエラーとは、プログラムが解放されているメモリへのアクセスを試行したり、割り当てられていないメモリへのアクセスを試行したりすることです。ポインタエラー(たとえば、ヌルポインタ参照、ワイルドポインタ参照)やメモリリークなどが含まれます。
- 配列の境界を越えている:プログラムが配列の境界を超える要素にアクセスしようとした場合、実行時エラーが発生します。
- ゼロ除算エラー:プログラムが0で割ろうとしたときに発生するエラー。
- 型エラー:プログラムが、ある型の値を別の型の変数に代入しようとしたり、型の合わない関数にオブジェクトを渡そうとしたりした場合に発生するエラー。
- ファイルエラー:プログラムがアクセス出来ないファイルの読み取りまたは書き込みが行われたときに発生します。
- デッドロック:複数のスレッドが相互にリソースの解放を待機している状態となり、プログラムが進行不能になること
- 無限再帰:プログラム中に無限再帰呼び出しがある場合、プログラムが正常に終了しなくなります。
- 引数が間違っている場合もしくは存在しない関数が呼び出された場合は、実行時エラーが発生する。
上記のC++ランタイムエラーは一般的なものを挙げたものであり、他にもランタイムエラーが発生する原因は考えられますので、ご注意ください。