C語言內存分配

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

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

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

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

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

5、代碼區:存放整個程序代碼的內存區域。數據和代碼是分開存儲的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章