web-dev-qa-db-ja.com

ヒープとスタックの両方がいっぱいになるとどうなりますか?

私が非常に重いアプリケーションを使用していると仮定します(または、ヒープにメモリを割り当て続け、それを解放せず、再帰も使用する非常に悪いコードであると言うことができます)ある時点の後、ヒープとスタックの両方が拡張するスペースがありません。

この状況では、ヒープとスタックの間に空き領域がありません。ヒープにメモリを割り当てようとすると、どうなりますか?スタックからオーバーフローしますか?

また、再帰呼び出しを行い、スタックを拡張する必要がある場合、ヒープをオーバーフローしますか?

1
Nullpointer

システムはこれを検出し、エラーを引き起こします。古い言語は単にプログラムをクラッシュさせるだけです。新しい言語は一般的に例外をスローします。ただし、これらの例外の処理には、十分なメモリまたはスタックがないため、問題が発生する可能性があります。

4
Euphoric