佚名 發表於 2017-12-15 11:26:02
內存分配分為三種:靜態、棧區、堆區分別解釋
(1)靜態存儲區:主要存放static靜態變量、全局變量、常量。這些數據內存在編譯的時候就已經為他們分配好了內存,生命周期是整個程序從運行到結束。
(2)棧區:存放局部變量。在執行函數的時候(包括main這樣的函數),函數內的局部變量的存儲單元會在棧上創建,函數執行完自動釋放,生命周期是從該函數的開始執行到結束。(例如,delay_ms(){ int a = 1000;//a就是一個局部變量 在棧區建立存儲單元 delay_ms()執行完畢後自動釋放 })
(3)堆區:程式設計師自己申請一塊任意大小的內存—也叫動態內存分配。這塊內存會一直存在知道程式設計師釋放掉。C語言中,用malloc or new動態地申請內存,用free or delete釋放內存。良好習慣:若申請的動態內存不再使用,要及時釋放掉,否則會造成內存洩露。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴