嵌入式面經(jīng)(2)

姓名:王重月? 學(xué)號:21021211019? ?學(xué)院:電子工程學(xué)院

轉(zhuǎn)自:(30條消息) 嵌入式面經(jīng)_Oliver.H的博客-CSDN博客_嵌入式面經(jīng)

【嵌牛導(dǎo)讀】程序的內(nèi)存分配榆芦、堆與棧的區(qū)別瓣喊、數(shù)組與指針

【嵌牛鼻子】程序內(nèi)存分配、堆與棧敞临、數(shù)組與指針

【嵌牛提問】堆與棧的區(qū)別节腐?數(shù)組與指針的區(qū)別外盯?

【嵌牛正文】一個(gè)由c/C++編譯的程序占用的內(nèi)存分為以下幾個(gè)部分:

1、棧區(qū)(stack)—由編譯器自動分配釋放翼雀,存放函數(shù)的參數(shù)值饱苟,局部變量的值等。其操作方式類似于數(shù)據(jù)結(jié)構(gòu)中的棧狼渊。

2箱熬、堆區(qū)(heap)—一般由程序員分配釋放,若程序員不釋放狈邑,程序結(jié)束時(shí)可能由OS回收城须。注意它與數(shù)據(jù)結(jié)構(gòu)中的堆是兩回事,分配方式倒是類似于鏈表

3米苹、全局區(qū)(靜態(tài)區(qū))(static)—全局變量和靜態(tài)變量的存儲是放在一塊的糕伐,初始化的全局變量和靜態(tài)變量在一塊區(qū)域,未初始化的全局變量和未初始化的靜態(tài)變量在相鄰的另一塊區(qū)域蘸嘶。程序結(jié)束后由系統(tǒng)釋放良瞧。

4、文字常量區(qū)—常量字符串就是放在這里的训唱。程序結(jié)束后由系統(tǒng)釋放褥蚯。

5、程序代碼區(qū)—存放函數(shù)體的二進(jìn)制代碼

堆與棧的區(qū)別

(1)管理方式:堆中資源由程序員控制(通過malloc/free况增、new/delete赞庶,容易產(chǎn)生memory leak),棧資源由編譯器自動管理澳骤。

(2)系統(tǒng)響應(yīng):對于堆歧强,系統(tǒng)有一個(gè)記錄空閑內(nèi)存地址的鏈表,當(dāng)系統(tǒng)收到程序申請時(shí)宴凉,遍歷該鏈表誊锭,尋找第一個(gè)大于所申請空間的空間的堆結(jié)點(diǎn),刪除空閑結(jié)點(diǎn)鏈表中的該結(jié)點(diǎn)弥锄,并將該結(jié)點(diǎn)空間分配給程序(大多數(shù)系統(tǒng)會在這塊內(nèi)存空間首地址記錄本次分配的大小,這樣delete才能正確釋放本內(nèi)存空間,另外籽暇,系統(tǒng)會將多余的部分重新放入空閑鏈表中)温治。對于棧,只要棧的剩余空間大于所申請空間戒悠,系統(tǒng)就會為程序分配內(nèi)存熬荆,否則報(bào)異常出現(xiàn)棧空間溢出錯(cuò)誤绸狐。

(3)空間大新笨摇:堆是不連續(xù)的內(nèi)存區(qū)域(因?yàn)橄到y(tǒng)是用鏈表來存儲空閑內(nèi)存地址的,自然不是連續(xù))寒矿,堆的大小受限于計(jì)算機(jī)系統(tǒng)中有效的虛擬內(nèi)存(32位機(jī)器上理論上是4G大型涣铡),所以堆的空間比較靈活符相,比較大拆融。棧是一塊連續(xù)的內(nèi)存區(qū)域,大小是操作系統(tǒng)預(yù)定好的啊终,windows下棧大小是2M(也有是1M镜豹,在編譯時(shí)確定,VC中可設(shè)置)蓝牲。

(4)碎片問題:對于堆趟脂,頻繁的new/delete會造成大量內(nèi)存碎片,降低程序效率例衍。對于棧散怖,它是一個(gè)先進(jìn)后出(first-in-last-out)的結(jié)構(gòu),進(jìn)出一一對應(yīng)肄渗,不會產(chǎn)生碎片镇眷。

(5)生長方向:堆向上,向高地址方向增長翎嫡;棧向下欠动,向低地址方向增長。

(6)分配方式:堆是動態(tài)分配(沒有靜態(tài)分配的堆)惑申。棧有靜態(tài)分配和動態(tài)分配具伍,靜態(tài)分配由編譯器完成(如函數(shù)局部變量),動態(tài)分配由alloca函數(shù)分配圈驼,但棧的動態(tài)分配資源由編譯器自動釋放人芽,無需程序員實(shí)現(xiàn)。

(7)分配效率:堆由C/C++函數(shù)庫提供绩脆,機(jī)制很復(fù)雜萤厅,因此堆的效率比棧低很多橄抹。棧是機(jī)器系統(tǒng)提供的數(shù)據(jù)結(jié)構(gòu),計(jì)算機(jī)在底層對棧提供支持惕味,分配專門的寄存器存放棧地址楼誓,提供棧操作專門的指令。

簡述數(shù)組與指針的區(qū)別名挥?

數(shù)組要么在靜態(tài)存儲區(qū)被創(chuàng)建(如全局?jǐn)?shù)組)疟羹,要么在棧上被創(chuàng)建。指針可以隨時(shí)指向任意類型的內(nèi)存塊禀倔。

(1)修改內(nèi)容上的差別

2) 用運(yùn)算符sizeof 可以計(jì)算出數(shù)組的容量(字節(jié)數(shù))榄融。sizeof§ 為指針得到的是一個(gè) 指針變量的字節(jié)數(shù),而不是p所指的內(nèi)存容量救湖。C++/C 語言沒有辦法知道指針?biāo)傅膬?nèi)存容量愧杯,除非在申請內(nèi)存時(shí)記住它。注意當(dāng)數(shù)組作為函數(shù)的參數(shù)進(jìn)行傳遞時(shí)捎谨,該數(shù)組自動退化為同類型的指針民效。

————————————————

版權(quán)聲明:本文為CSDN博主「Oliver.H」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議涛救,轉(zhuǎn)載請附上原文出處鏈接及本聲明畏邢。

原文鏈接:https://blog.csdn.net/weixin_43253519/article/details/107523751

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市检吆,隨后出現(xiàn)的幾起案子舒萎,更是在濱河造成了極大的恐慌,老刑警劉巖蹭沛,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件臂寝,死亡現(xiàn)場離奇詭異,居然都是意外死亡摊灭,警方通過查閱死者的電腦和手機(jī)咆贬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來帚呼,“玉大人掏缎,你說我怎么就攤上這事∶荷保” “怎么了眷蜈?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長沈自。 經(jīng)常有香客問我酌儒,道長,這世上最難降的妖魔是什么枯途? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任忌怎,我火速辦了婚禮籍滴,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘呆躲。我一直安慰自己异逐,他們只是感情好捶索,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布插掂。 她就那樣靜靜地躺著,像睡著了一般腥例。 火紅的嫁衣襯著肌膚如雪辅甥。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天燎竖,我揣著相機(jī)與錄音璃弄,去河邊找鬼。 笑死构回,一個(gè)胖子當(dāng)著我的面吹牛夏块,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播纤掸,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼脐供,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了借跪?” 一聲冷哼從身側(cè)響起政己,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎掏愁,沒想到半個(gè)月后歇由,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡果港,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年沦泌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辛掠。...
    茶點(diǎn)故事閱讀 38,622評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡谢谦,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出公浪,到底是詐尸還是另有隱情他宛,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布欠气,位于F島的核電站厅各,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏预柒。R本人自食惡果不足惜队塘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一袁梗、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧憔古,春花似錦遮怜、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至焰情,卻和暖如春陌凳,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背内舟。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工合敦, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人验游。 一個(gè)月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓充岛,卻偏偏與公主長得像,于是被迫代替她去往敵國和親耕蝉。 傳聞我的和親對象是個(gè)殘疾皇子崔梗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評論 2 348

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