一個由C/C++編譯的程式占用的記憶體分為以下幾個部分
1、棧區(stack)— 由編譯器自動配置設定釋放 ,存放函數的參數名,局部變量的名等。其操作方式類似于資料結構中的棧。
2、堆區(heap)— 由程式員配置設定釋放, 若程式員不釋放,程式結束時可能由OS回收。注意它與資料結構中的堆是兩回事,配置設定方式倒是類似于連結清單。
3、全局區(靜态區)(static)—全局變量和靜态變量的存儲是放在一塊的,初始化的全局變量和靜态變量在一塊區域, 未初始化的全局變量和未初始化的靜态變量在相鄰的另一塊區域。程式結束後由系統釋放。
4、文字常量區—常量字元串就是放在這裡的,程式結束後由系統釋放 。
5、程式代碼區— 存放函數體的二進制代碼。