1、未初始化的全域性變數(.bss段)
2、初始化過的全域性變數(.data段)
3、常量資料(.rodata段)
4、**(.text段)
5、棧(stack)
6、堆(heap)
1、從靜態儲存區域分配。內存在程式編譯時就已經分配好,這塊內存在程式的整個執行期間都存在,如全域性變數、static變數等。
2、在棧上建立。在執行函式時函式內區域性變數的儲存單元都可以在棧上建立,函式執行結束時這些儲存單元自動被釋放。棧記憶體分配運算使用內置於處理器的指令集,效率很高,反分配的記憶體有限。
3、從堆上分配,亦稱動態記憶體分配,程式在執行時使用malloc或new申請所需要的記憶體,程式設計師自己負責在何時用free或delete釋放記憶體。動態記憶體的生存週期由程式設計師決定,使用非常靈活,但問題也很多。
C記憶體分配方式與C 記憶體分配方式
c記憶體分配方式 注 malloc函式的實質體現在,它有乙個將可用的記憶體塊連線為乙個長長的列表的所謂空閒鍊錶。呼叫malloc函式時,它沿連線表尋找乙個大到足以滿足使用者請求所需要的記憶體塊。然後,將該記憶體塊一分為二 一塊的大小與使用者請求的大小相等,另一塊的大小就是剩下的位元組 接下來,將分配...
記憶體分配方式
記憶體分配方式有三種 1 從靜態儲存區域分配。內存在程式編譯的時候就已經分配好,這塊內存在程式的 整個執行期間都存在。例如全域性變數,static 變數。2 在棧上建立。在執行函式時,函式內區域性變數的儲存單元都可以在棧上建立,函 數執行結束時這些儲存單元自動被釋放。棧記憶體分配運算內置於處理器的指...
記憶體分配方式
記憶體分配方式有三種 1 從靜態儲存區域分配。內存在程式編譯的時候就已經分配好,這塊內存在程式的整個 執行期間都存在。例如全域性變數,static變數。2 在棧上建立。在執行函式時,函式內區域性變數的儲存單元都可以在棧上建立,函式執 行結束時這些儲存單元自動被釋放。棧記憶體分配運算內置於處理器的指令...