C語言內存分配
C語言的內存分配主要有5個區域:
1、棧區:在運行函數時,函數內的局部變量(不包含static變量)、函數返回值的存儲單元在棧區上創建。函數運行結束時這些存儲單元自己主動被釋放。
棧區內存分配運算內置于處理器的指令集中。效率非常高,但分配的內存容量有限。
2、堆區:程序在執行的時候用malloc(calloc、realloc等)申請的內存。要由程序猿自己負責用free釋放內存。
3、靜態存儲區:存放全局變量和static變量。該內存在程序編譯時候就已經分配好,在程序整個執行期間都存在。
4、常量區:整型常量、浮點型常量、字符型常量及字符串常量都分配在文字常量區。程序結束后有系統釋放。
5、代碼區:存放整個程序代碼的內存區域。
數據和代碼是分開存儲的。
posted on 2017-07-02 17:13 mthoutai 閱讀(...) 評論(...) 編輯 收藏