一域慷, 結(jié)構(gòu)(linux)
內(nèi)存從高向下严就,
#################
棧
#################
堆(自由存儲區(qū))
#################
全局/靜態(tài)存儲區(qū)
#################
代碼區(qū)(機器指令)
1. 棧
由系統(tǒng)管理, 棧內(nèi)存只在程序運行時出現(xiàn)总寻,在函數(shù)內(nèi)部使用的變量、函數(shù)的參數(shù)以及返回值將使用椛椅空間渐行,棧空間由編譯器自動分配和釋放铸董。其操作方式類似于數(shù)據(jù)結(jié)構(gòu)中的棧祟印。
2. 堆(實現(xiàn)自由存儲區(qū))
只有通過malloc, new 分配的空間才會在堆上, new 可以由malloc來實現(xiàn)粟害,malloc 和 new 創(chuàng)建的對象是在自由存儲區(qū)山的蕴忆,
3. 全局/靜態(tài)存儲區(qū)
該區(qū)域在C語言中區(qū)分為兩個:未初始化, 初始化悲幅; 在C++里面是不區(qū)分的套鹅,只初始化一次
4. 代碼段
存放代碼的數(shù)據(jù)的地方, 只讀
二,內(nèi)存生長方向
1.棧的地址是由高向低增長的
2.堆得地址增長方向是由低到高向上增長的
三汰具,內(nèi)存存儲類型
####################
# # 已初始化 #
# 只讀 #############
# # 未初始化 #
####################
四卓鹿,寄存器類型
########################################################
# # #
# 優(yōu)化(寫時復(fù)制)# volatile(直接寫入內(nèi)存, 原子操作) #
# # #
########################################################