- 棧區(qū)域: 系統(tǒng)自動分配. 存儲局部變量 如:int num=10, int* p=&num玉掸。 num 與 p 都存儲在棧區(qū)域
- 堆區(qū)域: 允許程序員手動的從堆申請空間來使用奶躯,要主動釋放忙灼。除非程序結(jié)束 如:int 4, float 4.... malloc,calloc ...
- BSS段區(qū)域: 存儲未初始化的全局變量/靜態(tài)變量眉厨,因程序運行時其全局/靜態(tài)變量都沒有初始化
- 數(shù)據(jù)段/常量區(qū):存儲已初始化的全局變量/靜態(tài)變量吁断,與常量數(shù)據(jù)椿每, 在main 外定義的變量
- 代碼段區(qū)域: 存儲程序代碼/指令
申請效率的比較:
棧由系統(tǒng)自動分配,速度較快坤候。但程序員是無法控制的胁赢。
堆是由new分配的內(nèi)存,一般速度比較慢白筹,而且容易產(chǎn)生內(nèi)存碎片,不過用起來最方便.
棧: 元素有先進后出順序的線性結(jié)構(gòu)智末。可以考慮疊盤子徒河,只能從最上面拿盤子系馆,也只能往最上面放盤子。那這個盤子序列顽照、包括上面兩條規(guī)則就構(gòu)成了一個棧
堆: 滿足一定限制