具體參見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...