內(nèi)存五大分區(qū)

一、棧區(qū)(stack)

由編譯器自動(dòng)管理。存放函數(shù)的參數(shù)值,局部變量等。操作方式類似于數(shù)據(jù)結(jié)構(gòu)中的棧。
棧是由高地址往低地址擴(kuò)展的數(shù)據(jù)結(jié)構(gòu),是一塊連續(xù)的內(nèi)存區(qū)域。即:棧頂?shù)牡刂泛蜅5淖畲笕萘渴窍到y(tǒng)預(yù)先定好的,如果申請(qǐng)的空間超過(guò)棧的剩余空間時(shí),將提示溢出溢出(overflow)。因此,能從棧獲取的空間較小。

二、堆區(qū)(heap)

一般由開發(fā)者分配釋放,如果不釋放,程序結(jié)束時(shí),可能由操作系統(tǒng)回收。其與數(shù)據(jù)結(jié)構(gòu)中的堆是兩回事。
堆是從低地址向高地址擴(kuò)展的數(shù)據(jù)結(jié)構(gòu),是不連續(xù)的內(nèi)存的區(qū)域。這是由于系統(tǒng)使用鏈表存儲(chǔ)空閑內(nèi)存地址的,自然是不連續(xù)的,而鏈表的遍歷方向是由低地址向高地址。堆的大小受限于計(jì)算機(jī)系統(tǒng)中有效的虛擬內(nèi)存。因此,堆獲得的空間比較靈活,也比較大。

三、全局區(qū)(靜態(tài)區(qū))

存放全局變量和靜態(tài)變量。初始化的全局變量和靜態(tài)變量放在一起,未初始化的放在一起。

四、 文字常量區(qū)

寸放字符串常量,程序結(jié)束后由系統(tǒng)釋放。

五、程序代碼區(qū)

存放函數(shù)體的二進(jìn)制代碼。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • iOS中,內(nèi)存主要分為棧區(qū)、堆區(qū)、全局區(qū)、常量區(qū)、代碼區(qū)五大區(qū)域 棧區(qū) 定義 棧是系統(tǒng)數(shù)據(jù)結(jié)構(gòu),其對(duì)應(yīng)的進(jìn)程或者線...
    HOULI閱讀 1,327評(píng)論 0 1
  • iOS中,內(nèi)存主要分為棧區(qū)、堆區(qū)、全局區(qū)、常量區(qū)、代碼區(qū)五大區(qū)域 1. 棧區(qū) 定義 棧是系統(tǒng)數(shù)據(jù)結(jié)構(gòu),其對(duì)應(yīng)的進(jìn)程...
    北京_小海閱讀 2,867評(píng)論 0 6
  • 一、棧區(qū) 又稱 堆棧 ,由編譯器自動(dòng)分配釋放,是用戶存放程序臨時(shí)創(chuàng)建的局部變量,也就是說(shuō)我們函數(shù)括弧“{}” 中定...
    奉灬孝閱讀 634評(píng)論 0 2
  • 關(guān)于iOS內(nèi)存的五大分區(qū) 1.bss段( bss segment ) bss段通常是指用來(lái)存放程序中未初始化的全局...
    7_c5dc閱讀 740評(píng)論 0 1
  • 1.bss段( bss segment ) bss段通常是指用來(lái)存放程序中未初始化的全局變量和靜態(tài)變量的一塊內(nèi)存區(qū)...
    dozening007閱讀 5,370評(píng)論 2 5

友情鏈接更多精彩內(nèi)容