3

Ok。実行可能ファイルがメモリ内にどのように配置されるかについての私の理解は...アプリがアクセスできるメモリを表す正方形のボックスをイメージしてください。

プログラムコードはメモリの一番下にあり、スタックはプログラムコードのすぐ上の場所に割り当てられ、上に割り当てられます。ヒープはメモリの先頭から始まり、下に向かって割り当てられます。

この場合、スタック メモリよりも多くのヒープ メモリを割り当てることができるのはなぜですか?

4

1 に答える 1

3

多くの仮想メモリが利用可能な最新のシステムでも、呼び出しスタックの最大サイズは通常、意図的に 1MB に制限されているためです。

これは通常、基本的な制限ではありません。これを変更することは可能です (たとえばsetrlimit()、Linux では、またはJava では-Xssフラグを使用して)。しかし、そうする必要がある場合は通常、プログラムが異常であることを示しています。大きなデータセットがある場合、通常はヒープに保存する必要があります。

于 2012-04-30T11:30:29.353 に答える