SIGSEGVとは何ですか?エラーの原因
What Is Sigsegv Cause Error
プログラムの実行中に、エラーSIGSEGVがスローされることがあります。
SIGSEGVとは何ですか?
SIGSEGV:SIGは信号名の一般的なプレフィックスであり、SEGVはセグメンテーション違反であり、メモリセグメントエラーです。
SIGSEGVの理由:
一般に、プロセスが異常終了する原因となるのは無効なメモリ参照です。一般的に、具体的には次の3つの状況が考えられます。
- ヌルポインタにアクセスします。
char *c = NULL ... *c // dereferencing a NULL pointer
- 範囲外のメモリアクセス
char *c = 'Hello' ... c[10] = 'z' // out of bounds, or in this case, writing into read-only memory
- 解放されたメモリにアクセスする
char *c = new char[10] ... delete [] c ... c[2] = 'z' // accessing freed memory
SIGSEGVを回避する方法
- メモリを申請した後、メモリの申請が成功したかどうかを確認してから、メモリにアクセスする必要があります。
- 要求されたメモリサイズが使用のニーズを満たし、範囲外のアクセスを回避できることを確認してください。
流行はいつ終わることができますか? ? ?