スタック オーバーフロー

より目立ちにくい一般保護違反の原因に、スタック オーバーフローがあります。スタックとは、CALL 文を実行するために、呼び出したパラメーターと呼び出し元のプログラムの戻りアドレスを一時的に格納するシステム領域のことです。スタックのオーバーフローは、呼び出し先サブプログラムのネスト レベルや渡されたパラメーターのサイズや数が、スタックで管理可能な範囲を超えると発生します。スタックのオーバーフローは、スタックを過度に使用した場合や、デフォルトのスタック サイズまたは要求されたスタック サイズが小さい場合に発生することがあります。スタックは、オペレーティング システムの各種ルーチンでも使用されることがあり、すべての容量が利用できるとは限りません。また、同じオペレーティング システムでもバージョンによりスタックの使用方法が異なるため、利用できるサイズが変化するという点に注意してください。