C/C++程序運行時的存儲分配

C/C++程序運行時的存儲分配

保留地址區

專門爲目標機體系結構和操作系統保留的內存地址區。通常,該區域不允許普通的用戶程序存取,只允許操作系統的某些特權操作進行讀寫。

代碼區

靜態存放編譯程序產生的目標代碼

靜態數據區

該區域用於存放程序中用到的所有常量數據對象(如字符串常量,數值常量以及各種命名常量等)以及各類全局變量和靜態變量所對應的數據對象。

共享庫和分別編譯模塊

靜態存放共享庫模塊和分別編譯模塊的代碼和全局數據

動態數據區

運行時動態變化的堆區和棧區,堆區地址由低到高變化,棧區地址由高到低變化。在過程/函數實現的過程中,參與棧式存儲分配的存儲單位是活動記錄,即棧上的棧幀。棧幀包含局部變量,函數實參,臨時值等數據信息以及必要的控制信息。當數據對象的生存期與創建它的過程/函數的執行期無關時,一種靈活但是代價比較昂貴的存儲分配方式就是堆式存儲分配

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章