C語言記憶體分配

2021-06-25 09:35:22 字數 451 閱讀 7324

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

1、棧區:在執行函式時,函式內的區域性變數(不包括static變數)、函式返回值的儲存單元在棧區上建立。函式執行結束時這些儲存單元自動被釋放。棧區記憶體分配運算內置於處理器的指令集中,效率很高,但分配的記憶體容量有限。

2、堆區:程式在執行的時候用malloc(calloc、realloc等)申請的記憶體,要由程式設計師自己負責用free釋放記憶體。

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

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

5、**區:存放整個程式**的記憶體區域。資料和**是分開儲存的。

C語言記憶體分配

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

C語言記憶體分配

objective c從名字來看就可以知道是一門超c語言,所以了解c語言的記憶體模型對於理解objective c的記憶體管理有很大的幫助。c語言記憶體模型圖如下 從圖中可以看出記憶體被分成了5個區,每個區儲存的內容如下 棧區在什麼時候釋放記憶體呢?我們通過下面的乙個例子來說明下 void prin...

C語言記憶體分配

可執行程式在儲存時 沒有調入到記憶體 分為 區 text 資料區 data 和未初始化資料區 bss 3個部分。1 區 text segment 存放cpu執行的機器指令 machine instructions 通常,區是可共享的 即另外的執行程式可以呼叫它 因為對於頻繁被執行的程式,只需要在記憶...