乙個程式執行後的記憶體分配

2021-06-22 15:04:47 字數 468 閱讀 8615

具體參見apue

1、棧區(

stack)— 

由編譯器自動分配釋放

,存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。 2

、堆區(

heap)— 

一般由程式設計師分配釋放,

若程式設計師不釋放,程式結束時可能由

os**

。注意它與資料結構中的堆是兩回事,分配方式倒是類似於鍊錶。

3、全域性區(靜態區)(

static)—

全域性變數和靜態變數的儲存是放在一塊的,初始化的全域性變數和靜態變數在一塊區域,

未初始化的全域性變數和未初始化的靜態變數在相鄰的另一塊區域。

- 程式結束後有系統釋放

4、文字常量區

—常量字串就是放在這裡的。

程式結束後由系統釋放

5、程式**區

(text)—

存放函式體的二進位制**。

程式編譯後執行時的記憶體分配

參考文章之編譯 執行 參考文章之執行程式時的記憶體分配方式 bss段 參考文章之程式執行時的記憶體分配 參考文章之堆 棧 1.程式編譯時的記憶體狀況 編譯時不分配記憶體。編譯器能夠識別語法,資料型別等 然後逐行逐句檢查編譯成資料的.obj檔案 然後再由連線程式將其連線成乙個exe檔案 此時的程式以e...

乙個快速的記憶體分配池

對於現代的遊戲引擎來說,為了提高效能和有效的管理記憶體,需要使用各種各樣的記憶體分配模型,記憶體池作為一種有效的分配模型被大量的使用,它通過一次分配足夠的記憶體來減少對new delelte使用以提高引擎的效能,並且由於每乙個記憶體塊都有相同的大小因此非常易於管理,並可以防止記憶體的洩露。它通常被用...

乙個簡單的記憶體分配演算法

果然不到50行,果然可以在2小時上機寫完,管然面試讓15分鐘寫出來不過分 const int seg len 128 4 struct mem seg struct mem list mem seg head mem seg end mem list mem init char all mem,in...