使用可能なメモリ セグメントに関する C のテキストを読んでいます。テキストには、最も高い 2 つのセグメントがヒープとスタックであり、互いに向かって成長することが示されています。
Segments:
________
|Text (Machine code)
|________
|Data
|________
|BSS
|________
|Heap (grows towards stack)
|
|
|Stack (grows towards heap)
|________
下位 4 つのセグメントで作成された変数のメモリ位置を出力する簡単なプログラムを作成すると、次の結果が得られます。
initialized in | Hex Address | Decimal Value
Data - 0x080497ec 134,518,764
BSS - 0x080497f8 134,518,776
Heap - 0x0804a008 134,520,840
Stack - 0xbffff844 3,221,223,524
ヒープとスタックがそれらの間で共有するのに〜30億バイトあるという解釈ですか? 私が作業しているコンピューターには 1 GB のメモリしかないため、この解釈の正確性には疑問があります。