Posted on 2006-08-08 13:56
一秋草木 閱讀(1568)
評(píng)論(0) 編輯 收藏 引用 所屬分類:
C++
一個(gè)由
C++
編譯的程序占用的內(nèi)存分為以下幾個(gè)部分
1
、棧區(qū)(
stack
)
???
由編譯器自動(dòng)分配釋放
,
存放函數(shù)的參數(shù)值,局部變量的值等。其操作方式類似于
數(shù)據(jù)結(jié)構(gòu)
中的棧。
2
、堆區(qū)(
heap
)
???由程序員分配釋放,
若程序員不釋放,程序結(jié)束時(shí)可由
OS
回收
。存放的是動(dòng)態(tài)分配的數(shù)據(jù)對(duì)象。
注意它與數(shù)據(jù)結(jié)構(gòu)中的堆是兩回事,分配方式倒是類似于鏈表。
3
、全局區(qū)(靜態(tài)區(qū))(
static
)
???全局變量和靜態(tài)變量的存儲(chǔ)是放在一塊的,初始化的全局變量和靜態(tài)變量在一塊區(qū)域,
未初始化的全局變量和未初始化的靜態(tài)變量在相鄰的另一塊區(qū)域。
程序結(jié)束后由系統(tǒng)釋放
4
、文字常量區(qū)
?
???
常量字符串就是放在這里的。
程序結(jié)束后由系統(tǒng)釋放
5
、程序代碼區(qū)
???存放函數(shù)體的二進(jìn)制代碼。