C 中全域變數的記憶體分配:堆疊與堆疊
在C 中,當全域宣告資料結構時,會出現以下問題:它消耗堆疊記憶體或堆疊記憶體。為了理解這一點,我們深入研究典型 C 進程的記憶體佈局。
C 進程的記憶體佈局
C 進程通常會分配五個不同的記憶體區域:
全域變數分配
當宣告一個全域變數時,它的記憶體要麼分配在資料段中,要麼分配在bss 段。
因此,全域變數儲存在data 段或bss 段中,它們是 的一部分靜態記憶體 分配給program.
範例
在給定的範例中,陣列arr 是struct AAA類型的全域變數。它將被分配在資料段或 bss 段中,具體取決於它是已初始化(具有預設值)還是未初始化(包含垃圾值)。
結論
總之,C 中的全域資料結構消耗分配給程式的靜態記憶體中的內存,特別是資料段或bss 段,它們不屬於堆疊或堆記憶體區域。
以上是C 中的全域變數在哪裡儲存它們的記憶體:堆疊還是堆疊?的詳細內容。更多資訊請關注PHP中文網其他相關文章!