iOS堆棧

  1. 棧區(qū):由編譯器自動分配釋放脱货,無需手工管理岛都;
    存放函數(shù)的參數(shù)值律姨、局部變量等;
    操作方式類似于數(shù)據(jù)結(jié)構(gòu)中的棧臼疫,后入先出择份。
  2. 堆區(qū):由程序員分配釋放,若程序員不釋放烫堤,就會造成內(nèi)存泄漏荣赶,程序結(jié)束時可能由系統(tǒng)回收。
  3. 全局區(qū)(靜態(tài)區(qū)):全局變量和靜態(tài)變量的存儲是放在一塊的鸽斟,初始化的全局變量和靜態(tài)變量在一塊區(qū)域拔创,未初始化的全局變量和未初始化的靜態(tài)變量在相鄰的另一塊區(qū)域。內(nèi)存在程序編譯的時候就已經(jīng)分配好富蓄,這塊內(nèi)存在程序的整個運行期間始終不變剩燥,程序結(jié)束后由系統(tǒng)釋放
  4. 文字常量區(qū):存放常量,不允許修改立倍,常量字符串就是放在這里灭红。程序結(jié)束由系統(tǒng)釋放
  5. 程序代碼區(qū):存放函數(shù)體的二進(jìn)制代碼。

這五個區(qū)在內(nèi)存中是地址由高向低排布口注。
棧是內(nèi)存中一塊連續(xù)的內(nèi)存比伏,棧頂?shù)刂泛妥畲笕萘渴怯上到y(tǒng)預(yù)先規(guī)定好的,由高地址向低地址擴(kuò)展疆导。
堆是不連續(xù)的內(nèi)存區(qū)域赁项,向高地址擴(kuò)展,大小受限于系統(tǒng)有效的虛擬地址澈段。


====高地址=====


全局靜態(tài)區(qū)
文字常量區(qū)
程序代碼區(qū)
==== 低地址 =====


//main.cpp 
int a = 0; // 全局初始化區(qū) 
char *p1; // 全局未初始化區(qū) 
main() 
{ 
int b;  // 棧 
char s[] = "abc";  // 棧 
char *p2;  // 棧 
char *p3 = "123456"; // 123456\0在常量區(qū)悠菜,p3在棧上。 
static int c = 0败富; // 全局(靜態(tài))初始化區(qū) 
p1 = (char *)malloc(10); 
p2 = (char *)malloc(20); 
// 分配得來得10和20字節(jié)的區(qū)域就在堆區(qū)悔醋。 
strcpy(p1, "123456"); // 123456\0放在常量區(qū),編譯器可能會將它與p3所指向的"123456"優(yōu)化成一個地方兽叮。 
}

優(yōu)缺點:

  1. 棧由編譯器管理芬骄,使用方便,速度快(系統(tǒng)底層支持鹦聪,有專門的寄存器存儲地址信息等)账阻,棧是內(nèi)存中一塊連續(xù)的內(nèi)存,不會產(chǎn)生內(nèi)存碎片泽本。缺點是內(nèi)存大小有限(1淘太、2M),并且不夠靈活(嚴(yán)格遵循先入后出原則)。
    iOS主線程棧大小1MB蒲牧,其他線程是512KB撇贺。(Mac也只有8M)

  2. 堆缺點:需手動管理、速度慢冰抢、容易產(chǎn)生內(nèi)存碎片松嘶,優(yōu)點是比棧靈活。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末挎扰,一起剝皮案震驚了整個濱河市翠订,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌鼓鲁,老刑警劉巖蕴轨,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異骇吭,居然都是意外死亡橙弱,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進(jìn)店門燥狰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來棘脐,“玉大人,你說我怎么就攤上這事龙致≈欤” “怎么了?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵目代,是天一觀的道長屈梁。 經(jīng)常有香客問我,道長榛了,這世上最難降的妖魔是什么在讶? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮霜大,結(jié)果婚禮上构哺,老公的妹妹穿的比我還像新娘。我一直安慰自己战坤,他們只是感情好曙强,可當(dāng)我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著途茫,像睡著了一般碟嘴。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上慈省,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天臀防,我揣著相機(jī)與錄音眠菇,去河邊找鬼边败。 笑死袱衷,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的笑窜。 我是一名探鬼主播致燥,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼排截!你這毒婦竟也來了嫌蚤?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤断傲,失蹤者是張志新(化名)和其女友劉穎脱吱,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體认罩,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡箱蝠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了垦垂。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片宦搬。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖劫拗,靈堂內(nèi)的尸體忽然破棺而出间校,到底是詐尸還是另有隱情,我是刑警寧澤页慷,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布憔足,位于F島的核電站,受9級特大地震影響酒繁,放射性物質(zhì)發(fā)生泄漏滓彰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一欲逃、第九天 我趴在偏房一處隱蔽的房頂上張望找蜜。 院中可真熱鬧,春花似錦稳析、人聲如沸洗做。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽诚纸。三九已至,卻和暖如春陈惰,著一層夾襖步出監(jiān)牢的瞬間畦徘,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留井辆,地道東北人关筒。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像杯缺,于是被迫代替她去往敵國和親蒸播。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,901評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 在計算機(jī)系統(tǒng)中萍肆,運行的應(yīng)用程序的數(shù)據(jù)都是保存在內(nèi)存中的袍榆,不同類型的數(shù)據(jù),保存的內(nèi)存區(qū)域不同塘揣。 一包雀、內(nèi)存分區(qū) 1.棧...
    紙簡書生閱讀 2,987評論 0 11
  • 內(nèi)存 自己畫的一個簡單的思維導(dǎo)圖,希望把碎片化的知識串起來 前言 當(dāng)app一啟動亲铡,系統(tǒng)就會通過DYLD把可執(zhí)行文件...
    timeQuick閱讀 1,689評論 0 2
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,101評論 1 32
  • Objective-C的對象在內(nèi)存中是以堆的方式分配空間的,并且堆內(nèi)存是由你釋放的才写,即release 棧由編譯器管...
    OC餅閱讀 3,768評論 0 17
  • 任務(wù)Mach-Task 描述:一個機(jī)器無關(guān)的thread的執(zhí)行環(huán)境抽象作用:task可以理解為一個進(jìn)程,包含它的線...
    龍貓六六閱讀 8,061評論 5 73