目次:
定義-セグメンテーション違反(セグメンテーション違反)とはどういう意味ですか?
セグメンテーションフォールト(セグメンテーション違反)は、メモリアクセス違反が発生したことをオペレーティングシステムに伝えるメモリ保護付きのハードウェアによって返されるエラーです。 通常、オペレーティングシステムは、問題のあるプロセスに信号を介してエラーについて通知することで反応し、OSは何らかの修正アクションを実行します。 これは、プロセスまたはプログラムが、割り当てられていないメモリにアクセスしようとするために発生します。
セグメンテーション違反は、アクセス違反とも呼ばれます。
Techopediaはセグメンテーションフォールト(セグメンテーション違反)について説明します
セグメンテーションフォールトは、多くの場合、プログラムが他のプログラムまたはシステム自体に割り当てられていないメモリにアクセスするプロセスまたはアプリケーションのプログラミングのエラーによって引き起こされます。 プロセスは、使用する前に常にメモリを要求する必要があるため、予約されていないメモリにアクセスすることはできません。 したがって、誤って割り当てられていないメモリにアクセスすると、アクセス違反が発生します。
セグメンテーション違反は、再帰関数によっても発生する可能性があります。再帰関数は、割り当てられているすべてのスタックスペースを使い果たし、割り当てられていないメモリをすぐに侵害します。 一部のシステムでは、これはスタックオーバーフローと見なされますが、他のシステムでは、一種のアクセス違反です。
セグメンテーションフォールトは、カスタムシグナルハンドラーを介してプロセスで処理できますが、多くの場合、使用されるのはOSのデフォルトのシグナルハンドラーであり、通常、問題のプロセスが異常終了したり、クラッシュと呼ばれたり、OSがコアダンプを強制したりします。
