堆區(qū):全局變量,靜態(tài)變量,malloc函數(shù)。
棧區(qū):函數(shù)的參數(shù)值,局部變量。
1、棧區(qū)(stack)—編譯器自動(dòng)分配釋放,例如存放函數(shù)的參數(shù)值,局部變量的值等。
2、堆區(qū)(heap)—由程序來(lái)分配釋放,若程序中不釋放,那么在程序結(jié)束時(shí)可能由系統(tǒng)進(jìn)行回收,例如全局變量,靜態(tài)變量,malloc函數(shù)。
一切局部變量都在堆棧里保存,函數(shù)調(diào)用也在堆棧里保存返回地址。
指針如果也是局部變量,也在堆棧里分配的。還有程序運(yùn)算時(shí)候也會(huì)用到堆棧。全局變量和用內(nèi)存分配函數(shù)分配的空間,則不是在堆棧里分配。
在程序的專門數(shù)據(jù)空間分配