之前一直比較懵,想想還是單獨寫一個短篇來記錄吧
一般內存主要分為:代碼區、常量區、靜態區(全局區)、堆區、棧區這幾個區域。?
代碼區:存放程序的代碼,即CPU執行的機器指令,并且是只讀的。?
常量區:存放常量(程序在運行的期間不能夠被改變的量,例如: 10,字符串常量”abcde”, 數組的名字等)?
靜態區(全局區):靜態變量和全局變量的存儲區域是一起的,一旦靜態區的內存被分配, 靜態區的內存直到程序全部結束之后才會被釋放?
堆區:由程序員調用malloc()函數來主動申請的,需使用free()函數來釋放內存,若申請了堆區內存,之后忘記釋放內存,很容易造成內存泄漏?
棧區:存放函數內的局部變量,形參和函數返回值。棧區之中的數據的作用范圍過了之后,系統就會回收自動管理棧區的內存(分配內存 , 回收內存),不需要開發人員來手動管理。?
?