1. 程式人生 > >C語言內存分配

C語言內存分配

字符型 程序代碼 程序 代碼區 程序猿 語言 內存分配 結束 指令集

C語言的內存分配主要有5個區域:

1、棧區:在運行函數時,函數內的局部變量(不包含static變量)、函數返回值的存儲單元在棧區上創建。函數運行結束時這些存儲單元自己主動被釋放。

棧區內存分配運算內置於處理器的指令集中。效率非常高,但分配的內存容量有限。

2、堆區:程序在執行的時候用malloc(calloc、realloc等)申請的內存。要由程序猿自己負責用free釋放內存。

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

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

5、代碼區:存放整個程序代碼的內存區域。

數據和代碼是分開存儲的。

C語言內存分配