內(nèi)存堆分配和棧分配

內(nèi)存堆分配和棧分配

ID:20324331

大?。?5.50 KB

頁數(shù):5頁

時間:2018-10-11

內(nèi)存堆分配和棧分配_第1頁
內(nèi)存堆分配和棧分配_第2頁
內(nèi)存堆分配和棧分配_第3頁
內(nèi)存堆分配和棧分配_第4頁
內(nèi)存堆分配和棧分配_第5頁
資源描述:

《內(nèi)存堆分配和棧分配》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、堆和棧的區(qū)別一個由C/C++編譯的程序占用的內(nèi)存分為以下幾個部分1、棧區(qū)(stack)—由編譯器自動分配釋放,存放函數(shù)的參數(shù)值,局部變量的值等。其操作方式類似于數(shù)據(jù)結(jié)構(gòu)中的棧。2、堆區(qū)(heap)—一般由程序員分配釋放,若程序員不釋放,程序結(jié)束時可能由OS回收。注意它與數(shù)據(jù)結(jié)構(gòu)中的堆是兩回事,分配方式倒是類似于鏈表,呵呵。3、全局區(qū)(靜態(tài)區(qū))(static)—,全局變量和靜態(tài)變量的存儲是放在一塊的,初始化的全局變量和靜態(tài)變量在一塊區(qū)域,未初始化的全局變量和未初始化的靜態(tài)變量在相鄰的另一塊區(qū)域。-程序結(jié)束后由系統(tǒng)釋放。4、文字常量區(qū)—常量字符串就是放在這里的。程序結(jié)束后由

2、系統(tǒng)釋放5、程序代碼區(qū)—存放函數(shù)體的二進(jìn)制代碼。二、例子程序這是一個前輩寫的,非常詳細(xì)//main.cppinta=0;全局初始化區(qū)char*p1;全局未初始化區(qū)main(){intb;棧chars[]="abc";棧char*p2;棧char*p3="123456";123456