スタック アドレスが非常に高く、ヒープ アドレスがかなり低い (C プログラムを使用してヒープ アドレスとスタック アドレスを出力することでわかるように) Linux をこれまで使用していたので、Win32 プロセスのメモリ レイアウトに問題がありました。MWSDN は、スタック アドレスはヒープ アドレスよりも高いと言っていますが、実際に見たところ、スタック アドレスはヒープ アドレスよりも低くなっています。だから私は混乱しています。誰か説明してください。
質問する
2811 次
1 に答える
5
うーん、stack addresses are higher than heap addresses
これは単に真実ではありません。スタックとヒープはどちらも、Windows のプロセスのアドレス空間のどこにでも置くことができます。
多くのスレッドを開始し、巨大なヒープ割り当てを行い、何百もの dll をロードすると、これらすべてのオブジェクトがアドレス空間全体に均等に分散されていることがわかります。
この図は、Windows の典型的な 32 ビット プロセスにおける仮想割り当ての構造を示しています。緑は空き領域、青は何かが割り当てられていることを示します。アクティビティは主にアドレス空間の先頭で発生していますが、他のアドレス範囲でも発生しています。
于 2012-08-12T19:55:51.297 に答える