c 內(nèi)存分配最佳實(shí)踐

內(nèi)存分配失敗

內(nèi)存分配可能失敗。常用解決辦法是,在使用內(nèi)存之前檢查指針是否為NULL。

內(nèi)存分配成功排霉,但是尚未初始化就引用

一定要賦零值

內(nèi)存分配成功并且已經(jīng)初始化,但操作越界

例如在使用數(shù)組時(shí)經(jīng)常發(fā)生下標(biāo)“多1”或者“少1”的操作民轴。特別是在for循環(huán)語句中攻柠,循環(huán)次數(shù)很容易搞錯(cuò),導(dǎo)致數(shù)組操作越界后裸。

忘記釋放內(nèi)存瑰钮,造成內(nèi)存泄露

動(dòng)態(tài)內(nèi)存的申請(qǐng)與釋放必須配對(duì),如果因程序錯(cuò)綜復(fù)雜而導(dǎo)致難以檢查微驶,請(qǐng)盡量重新設(shè)計(jì)代碼結(jié)構(gòu)飞涂。

釋放了內(nèi)存卻繼續(xù)使用它。

有三種情況:

(1)程序中的對(duì)象調(diào)用關(guān)系過于復(fù)雜祈搜,實(shí)在難以搞清楚某個(gè)對(duì)象究竟是否已經(jīng)釋放了內(nèi)存较店,此時(shí)應(yīng)該重新設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu),從根本上解決對(duì)象管理的混亂局面容燕。

(2)函數(shù)的return語句寫錯(cuò)了梁呈,注意不要返回指向“棧內(nèi)存”的“指針”或者“引用”,因?yàn)樵搩?nèi)存在函數(shù)體結(jié)束時(shí)被自動(dòng)銷毀蘸秘。

(3)使用free或delete釋放了內(nèi)存后官卡,沒有將指針設(shè)置為NULL。導(dǎo)致產(chǎn)生“野指針”醋虏。

內(nèi)存分配規(guī)則
  1. 申請(qǐng)內(nèi)存之后寻咒,應(yīng)該立即檢查指針值是否為NULL,防止使用指針值為NULL的內(nèi)存颈嚼。

  2. 為數(shù)組和動(dòng)態(tài)內(nèi)存賦初值毛秘,防止將未被初始化的內(nèi)存作為值使用。

  3. 避免數(shù)組或指針的下標(biāo)越界阻课,特別要當(dāng)心發(fā)生“多1”或者“少1”操作叫挟。

  4. 動(dòng)態(tài)內(nèi)存的申請(qǐng)與釋放必須配對(duì),防止內(nèi)存泄漏限煞。

  5. 釋放內(nèi)存之后抹恳,立即將指針設(shè)置為NULL,防止產(chǎn)生“野指針”署驻。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末奋献,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子旺上,更是在濱河造成了極大的恐慌瓶蚂,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,997評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件抚官,死亡現(xiàn)場(chǎng)離奇詭異扬跋,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)凌节,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門钦听,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人倍奢,你說我怎么就攤上這事朴上。” “怎么了卒煞?”我有些...
    開封第一講書人閱讀 163,359評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵痪宰,是天一觀的道長。 經(jīng)常有香客問我,道長衣撬,這世上最難降的妖魔是什么乖订? 我笑而不...
    開封第一講書人閱讀 58,309評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮具练,結(jié)果婚禮上乍构,老公的妹妹穿的比我還像新娘。我一直安慰自己扛点,他們只是感情好哥遮,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評(píng)論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著陵究,像睡著了一般眠饮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上铜邮,一...
    開封第一講書人閱讀 51,258評(píng)論 1 300
  • 那天仪召,我揣著相機(jī)與錄音,去河邊找鬼牲距。 笑死返咱,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的牍鞠。 我是一名探鬼主播咖摹,決...
    沈念sama閱讀 40,122評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼难述!你這毒婦竟也來了萤晴?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,970評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤胁后,失蹤者是張志新(化名)和其女友劉穎店读,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體攀芯,經(jīng)...
    沈念sama閱讀 45,403評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡屯断,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了侣诺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片殖演。...
    茶點(diǎn)故事閱讀 39,769評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖年鸳,靈堂內(nèi)的尸體忽然破棺而出趴久,到底是詐尸還是另有隱情,我是刑警寧澤搔确,帶...
    沈念sama閱讀 35,464評(píng)論 5 344
  • 正文 年R本政府宣布彼棍,位于F島的核電站灭忠,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏座硕。R本人自食惡果不足惜弛作,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望坎吻。 院中可真熱鬧缆蝉,春花似錦、人聲如沸瘦真。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽诸尽。三九已至,卻和暖如春印颤,著一層夾襖步出監(jiān)牢的瞬間您机,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評(píng)論 1 269
  • 我被黑心中介騙來泰國打工年局, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留际看,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,831評(píng)論 2 370
  • 正文 我出身青樓矢否,卻偏偏與公主長得像仲闽,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子僵朗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評(píng)論 2 354

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

  • (JG-2014-08-20)(前半部分經(jīng)過網(wǎng)上多篇文章對(duì)比整理)(后半部分根據(jù)ExceptionalCpp赖欣、C+...
    JasonGao閱讀 5,605評(píng)論 2 23
  • 1 文件結(jié)構(gòu) 每個(gè)C++/C程序通常分為兩個(gè)文件。一個(gè)文件用于保存程序的聲明(declaration)验庙,稱為頭文件...
    Mr希靈閱讀 2,870評(píng)論 0 13
  • 1. C++基礎(chǔ)知識(shí)點(diǎn) 1.1 有符號(hào)類型和無符號(hào)類型 當(dāng)我們賦給無符號(hào)類型一個(gè)超出它表示范圍的值時(shí)顶吮,結(jié)果是初始值...
    Mr希靈閱讀 17,986評(píng)論 3 82
  • C語言中內(nèi)存分配 在任何程序設(shè)計(jì)環(huán)境及語言中,內(nèi)存管理都十分重要粪薛。在目前的計(jì)算機(jī)系統(tǒng)或嵌入式系統(tǒng)中悴了,內(nèi)存資源仍然是...
    一生信仰閱讀 1,160評(píng)論 0 2
  • 風(fēng)兒想必是累了 找尋你那么久了 還是不得 在村頭處休息了 終于 風(fēng)送來了你回家的訊號(hào) 你不再和我通話 距離就這樣看...
    以夢(mèng)為馬ap閱讀 175評(píng)論 5 1