天天看點

記憶體配置設定問題

一個由c/c++編譯的程式占用的記憶體分為以下幾個部分  

1、棧區(stack)— 由編譯器自動配置設定釋放 ,存放函數的參數值,局部變量的值等。其操作方式類似于資料結  

構中的棧。  

2、堆區(heap) — 一般由程式員配置設定釋放, 若程式員不釋放,程式結束時可能由os回收 。注意它與資料結構  

中的堆是兩回事,配置設定方式倒是類似于連結清單。  

3、全局區(靜态區)(static)—,全局變量和靜态變量的存儲是放在一塊的,初始化的全局變量和靜态變量在  

一塊區域, 未初始化的全局變量和未初始化的靜态變量在相鄰的另一塊區域。 - 程式結束後有系統釋放  

4、文字常量區 —常量字元串就是放在這裡的。 程式結束後由系統釋放  

5、程式代碼區—存放函數體的二進制代碼。 

       函數裡定義的,無論是簡單變量,還是數字或結構,隻要不是被 static 修飾的,都是臨時在棧裡配置設定空間的;是以,函數一結束,這些變量就沒有意義了