C語言常見的記憶體分配

2021-06-29 14:03:42 字數 364 閱讀 6082

本篇部落格內容摘自《經典c面試真題精講》

c語言的記憶體分配區域主要有以下五個:

1.棧區:在執行函式時,函式內部區域性變數(不包含static變數)、函式返回值的儲存單元在棧上建立,函式執行結束時這些儲存單元自動被釋放;

2.堆區:即動態記憶體分配,程式在執行的時候用malloc(calloc、realloc等)申請的記憶體,程式設計師自己負責用free釋放;

3.靜態儲存區:該內存在程式編譯的時候就已經分配好,這塊內存在程式的整個執行期間都存在,此處存放全域性變數、static變數;

4.常量區:整形常量、浮點型常量、字元型常量及字串常量都分配在文字常量區,程式結束後由系統釋放;

5.**區:存放整個程式的**,資料和**是分開的。

C語言的記憶體分配

文章一 c語言的記憶體分配模型 1 程式 區 存放函式體的二進位制 2 全域性區資料區 全域性資料區劃分為三個區域。全域性變數和靜態變數的儲存是放在一塊的,初始化的全域性變數和靜態變數在一塊區域,未初始化的全域性變數和未初始化的靜態變數在相鄰的另一塊區域。常量資料存放在另乙個區域裡。這些資料在程式結...

C語言記憶體分配

c語言的記憶體分配主要有5個區域 1 棧區 在執行函式時,函式內的區域性變數 不包括static變數 函式返回值的儲存單元在棧區上建立。函式執行結束時這些儲存單元自動被釋放。棧區記憶體分配運算內置於處理器的指令集中,效率很高,但分配的記憶體容量有限。2 堆區 程式在執行的時候用malloc call...

C語言記憶體分配

c語言的記憶體分配主要有5個區域 1 棧區 在執行函式時,函式內的區域性變數 不包括static變數 函式返回值的儲存單元在棧區上建立。函式執行結束時這些儲存單元自動被釋放。棧區記憶體分配運算內置於處理器的指令集中,效率很高,但分配的記憶體容量有限。2 堆區 程式在執行的時候用malloc call...