SIGSEGVとは何ですか?エラーの原因



What Is Sigsegv Cause Error



プログラムの実行中に、エラーSIGSEGVがスローされることがあります。

SIGSEGVとは何ですか?

SIGSEGV:SIGは信号名の一般的なプレフィックスであり、SEGVはセグメンテーション違反であり、メモリセグメントエラーです。



SIGSEGVの理由:

一般に、プロセスが異常終了する原因となるのは無効なメモリ参照です。一般的に、具体的には次の3つの状況が考えられます。

  1. ヌルポインタにアクセスします。
char *c = NULL ... *c // dereferencing a NULL pointer
  1. 範囲外のメモリアクセス
char *c = 'Hello' ... c[10] = 'z' // out of bounds, or in this case, writing into read-only memory
  1. 解放されたメモリにアクセスする
char *c = new char[10] ... delete [] c ... c[2] = 'z' // accessing freed memory

SIGSEGVを回避する方法

  1. メモリを申請した後、メモリの申請が成功したかどうかを確認してから、メモリにアクセスする必要があります。
  2. 要求されたメモリサイズが使用のニーズを満たし、範囲外のアクセスを回避できることを確認してください。

画像
流行はいつ終わることができますか? ? ?