1. 程式人生 > >資料儲存方式與記憶體分配方式

資料儲存方式與記憶體分配方式

資料儲存方式:

1、未初始化的全域性變數(.bss段)

2、初始化過的全域性變數(.data段)

3、常量資料(.rodata段)

4、程式碼(.text段)

5、棧(stack)

6、堆(heap)

記憶體分配方式:

1、從靜態儲存區域分配。記憶體在程式編譯時就已經分配好,這塊記憶體在程式的整個執行期間都存在,如全域性變數、static變數等。

2、在棧上建立。在執行函式時函式內區域性變數的儲存單元都可以在棧上建立,函式執行結束時這些儲存單元自動被釋放。棧記憶體分配運算使用內置於處理器的指令集,效率很高,反分配的記憶體有限。

3、從堆上分配,亦稱動態記憶體分配,程式在執行時使用malloc或new申請所需要的記憶體,程式設計師自己負責在何時用free或delete釋放記憶體。動態記憶體的生存週期由程式設計師決定,使用非常靈活,但問題也很多。