C/C++程序運行時的存儲分配
保留地址區
專門爲目標機體系結構和操作系統保留的內存地址區。通常,該區域不允許普通的用戶程序存取,只允許操作系統的某些特權操作進行讀寫。
代碼區
靜態存放編譯程序產生的目標代碼
靜態數據區
該區域用於存放程序中用到的所有常量數據對象(如字符串常量,數值常量以及各種命名常量等)以及各類全局變量和靜態變量所對應的數據對象。
共享庫和分別編譯模塊
靜態存放共享庫模塊和分別編譯模塊的代碼和全局數據
動態數據區
運行時動態變化的堆區和棧區,堆區地址由低到高變化,棧區地址由高到低變化。在過程/函數實現的過程中,參與棧式存儲分配的存儲單位是活動記錄,即棧上的棧幀。棧幀包含局部變量,函數實參,臨時值等數據信息以及必要的控制信息。當數據對象的生存期與創建它的過程/函數的執行期無關時,一種靈活但是代價比較昂貴的存儲分配方式就是堆式存儲分配。