四却嗡、操作系統(tǒng)中的堆和棧

image.png
  • 棧區(qū)(stack):由系統(tǒng)自動分配舶沛,一般存放函數參數值、局部變量的值等窗价。由編譯器自動創(chuàng)建與釋放如庭。其操作方式類似于數據結構中的棧,即后進先出撼港、先進后出的原則坪它。
/// 在函數中申明一個局部變量;系統(tǒng)自動在棧中為b開辟空間。
int b
  • 堆區(qū)(heap):一般由程序員申請并指明大小帝牡,最終也由程序員釋放往毡。如果程序員不釋放,程序結束時可能會由OS回收靶溜。對于堆區(qū)的管理是采用鏈表式管理的开瞭,操作系統(tǒng)有一個記錄空閑內存地址的鏈表,當接收到程序分配內存的申請時,操作系統(tǒng)就會遍歷該鏈表惩阶,遍歷到一個記錄的內存地址大于申請內存的鏈表節(jié)點,并將該節(jié)點從該鏈表中刪除扣汪,然后將該節(jié)點記錄的內存地址分配給程序断楷。
/// C中malloc函數,但是p1本身是在棧中的。
char p1;
p1 = (char )malloc(10);
  • 全局區(qū)/靜態(tài)區(qū):顧名思義崭别,全局變量和靜態(tài)變量存儲在這個區(qū)域冬筒。只不過初始化的全局變量和靜態(tài)變量存儲在一塊,未初始化的全局變量和靜態(tài)變量存儲在一塊茅主。程序結束后由系統(tǒng)釋放舞痰。
  • 文字常量區(qū):這個區(qū)域主要存儲字符串常量。程序結束后由系統(tǒng)釋放诀姚。
  • 程序代碼區(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ū)呀打,這個函數的作用是將"123456" 這串字符串復制一份放在p1申請的10個字節(jié)的堆區(qū)域中。
    // p3指向的"123456"與這里的"123456"可能會被編譯器優(yōu)化成一個地址糯笙。
}
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末贬丛,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子给涕,更是在濱河造成了極大的恐慌豺憔,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件够庙,死亡現(xiàn)場離奇詭異恭应,居然都是意外死亡,警方通過查閱死者的電腦和手機耘眨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門暮屡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人毅桃,你說我怎么就攤上這事褒纲。” “怎么了钥飞?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵莺掠,是天一觀的道長。 經常有香客問我读宙,道長彻秆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮唇兑,結果婚禮上酒朵,老公的妹妹穿的比我還像新娘。我一直安慰自己扎附,他們只是感情好蔫耽,可當我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著留夜,像睡著了一般匙铡。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上碍粥,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天鳖眼,我揣著相機與錄音,去河邊找鬼嚼摩。 笑死钦讳,一個胖子當著我的面吹牛,可吹牛的內容都是我干的枕面。 我是一名探鬼主播蜂厅,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼膊畴!你這毒婦竟也來了掘猿?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤唇跨,失蹤者是張志新(化名)和其女友劉穎稠通,沒想到半個月后,有當地人在樹林里發(fā)現(xiàn)了一具尸體买猖,經...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡改橘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了玉控。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片飞主。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖高诺,靈堂內的尸體忽然破棺而出碌识,到底是詐尸還是另有隱情,我是刑警寧澤虱而,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布筏餐,位于F島的核電站,受9級特大地震影響牡拇,放射性物質發(fā)生泄漏魁瞪。R本人自食惡果不足惜穆律,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望导俘。 院中可真熱鬧峦耘,春花似錦、人聲如沸旅薄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽赋秀。三九已至利朵,卻和暖如春律想,著一層夾襖步出監(jiān)牢的瞬間猎莲,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工技即, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留著洼,地道東北人。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓而叼,卻偏偏與公主長得像身笤,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子葵陵,可洞房花燭夜當晚...
    茶點故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內容