c 與c的記憶體分配

2021-10-03 21:58:14 字數 532 閱讀 7156

c的記憶體分配: 

1、bss段: 用來存放程式中未初始化的全域性變數。bss是英文block started by symbol的簡稱。bss段屬於靜態記憶體分配。

2、資料段:用來存放程式中已初始化的全域性變數。資料段屬於靜態記憶體分配。

3、**段:用來存放程式執行**。

4、堆:堆是用於存放程序執行中被動態分配的記憶體段,當程序呼叫malloc/free等函式分配記憶體時,新分配的記憶體就被動態新增到堆上。

5、棧:棧又稱堆疊, 存放程式的區域性變數。除此以外,在函式被呼叫時,棧用來傳遞引數和返回值。

c++的記憶體分配:

1、棧:記憶體由編譯器在需要時自動分配和釋放。通常用來儲存區域性變數和函式引數。

2、堆:記憶體使用new進行分配使用delete或delete釋放。

3、自由儲存區:使用malloc進行分配,使用free進行**。和堆類似。

4、全域性/靜態儲存區:全域性變數和靜態變數被分配到同一塊記憶體中,c語言中區分初始化和未初始化的,c++中不再區分了。

5、常量儲存區:儲存常量,不允許被修改。

C記憶體分配方式與C 記憶體分配方式

c記憶體分配方式 注 malloc函式的實質體現在,它有乙個將可用的記憶體塊連線為乙個長長的列表的所謂空閒鍊錶。呼叫malloc函式時,它沿連線表尋找乙個大到足以滿足使用者請求所需要的記憶體塊。然後,將該記憶體塊一分為二 一塊的大小與使用者請求的大小相等,另一塊的大小就是剩下的位元組 接下來,將分配...

C與C 動態記憶體分配

1 c語言動態記憶體分配 要實現動態記憶體的分配,除了利用含指標成員的結構體之外,還需利用c語言提供的幾個標準庫函式。使用時應包含標頭檔案 alloc.h 或 malloc.h 或 stdlib.h 1.malloc 函式原型為void malloc unsigned int size 在記憶體的動...

C 記憶體分配

總結 1 從靜態儲存區域分配。內存在程式編譯的時候就已經分配好,這塊內存在程式的整個執行期間都存在。例如全域性變數,static變數。2 在棧上建立。在執行函式時,函式內區域性變數的儲存單元都可以在棧上建立,函式執行結束時這些儲存單元自動被釋放。棧記憶體分配運算內置於處理器的指令集中,效率很高,但是...