一聪富、內存基本構成
可編程內存在基本上分為這樣的幾大部分:靜態(tài)存儲區(qū)、堆區(qū)和棧區(qū)谴返。他們的功能不同,對他們使用方式也就不同咧织。
1> 靜態(tài)存儲區(qū):內存在程序編譯的時候就已經(jīng)分配好嗓袱,這塊內存在整個計算機內存中位于較低的地址,這塊內存在程序的整個運行期間都存在。它主要存放靜態(tài)數(shù)據(jù)习绢、全局數(shù)據(jù)和常量索抓。
2> 棧區(qū):在執(zhí)行函數(shù)時,函數(shù)內局部變量的存儲單元都可以在棧上創(chuàng)建毯炮,函數(shù)執(zhí)行結束時這些存儲單元自動被釋放逼肯。棧內存分配運算內置于處理器的指令集中,效率很高桃煎,但是分配的內存容量有限,棧內存存儲數(shù)據(jù)是從高地址往低地址存儲篮幢。
3> 堆區(qū):亦稱動態(tài)內存分配。程序在運行的時候用malloc或new申請任意大小的內存为迈,程序員自己負責在適當?shù)臅r候用free或delete釋放內存三椿。動態(tài)內存的生存期可以由我們決定缺菌,如果我們不釋放內存,程序將在最后才釋放掉動態(tài)內存搜锰。 但是伴郁,良好的編程習慣是:如果某動態(tài)內存不再使用,需要將其釋放掉蛋叼,否則焊傅,我們認為發(fā)生了內存泄漏現(xiàn)象。堆內存一般處于內存較低的地址(但是堆內存的內存地址高于靜態(tài)內存區(qū)的內存地址)狈涮,堆內存存儲數(shù)據(jù)是從低地址往高地址存儲數(shù)據(jù).
二 注意
【規(guī)則1】用malloc 或new 申請內存之后狐胎,應該立即檢查指針值是否為NULL。防止使用指針值為NULL 的內存歌馍。
【規(guī)則2】不要忘記為數(shù)組和動態(tài)內存賦初值握巢。防止將未被初始化的內存作為右值使用。
【規(guī)則3】避免數(shù)組或指針的下標越界松却,特別要當心發(fā)生“多1”或者“少1”操作暴浦。
【規(guī)則4】動態(tài)內存的申請與釋放必須配對,防止內存泄漏晓锻。
【規(guī)則5】用free 或delete 釋放了內存之后歌焦,立即將指針設置為NULL,防止產生“野指針”带射。
了解一下靜態(tài)存儲區(qū),堆區(qū),棧區(qū)
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來寸潦,“玉大人色鸳,你說我怎么就攤上這事〖” “怎么了命雀?”我有些...
- 文/不壞的土叔 我叫張陵,是天一觀的道長斩箫。 經(jīng)常有香客問我吏砂,道長撵儿,這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任狐血,我火速辦了婚禮淀歇,結果婚禮上,老公的妹妹穿的比我還像新娘匈织。我一直安慰自己浪默,他們只是感情好,可當我...
- 文/花漫 我一把揭開白布报亩。 她就那樣靜靜地躺著浴鸿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪弦追。 梳的紋絲不亂的頭發(fā)上岳链,一...
- 文/蒼蘭香墨 我猛地睜開眼牵辣,長吁一口氣:“原來是場噩夢啊……” “哼摔癣!你這毒婦竟也來了?” 一聲冷哼從身側響起纬向,我...
- 正文 年R本政府宣布,位于F島的核電站谒府,受9級特大地震影響拼坎,放射性物質發(fā)生泄漏浮毯。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一泰鸡、第九天 我趴在偏房一處隱蔽的房頂上張望债蓝。 院中可真熱鬧,春花似錦盛龄、人聲如沸饰迹。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽啊鸭。三九已至,卻和暖如春匿值,著一層夾襖步出監(jiān)牢的瞬間赠制,已是汗流浹背。 一陣腳步聲響...
推薦閱讀更多精彩內容
- 一個由C/C++編譯的程序占用的內存分為以下幾個部分 1罕伯、棧區(qū)(stack)—由編譯器自動分配釋放曲伊,存放函數(shù)參數(shù)值...
- 2016年國慶假期終于把此書過完坟募,整理筆記和體會于此岛蚤。 關于書名 書名源于俄羅斯的演員斯坦尼斯拉夫斯基創(chuàng)作的《演員...
- 從三月份找實習到現(xiàn)在,面了一些公司懈糯,掛了不少涤妒,但最終還是拿到小米、百度赚哗、阿里她紫、京東硅堆、新浪、CVTE贿讹、樂視家的研發(fā)崗...
- ——按秒分解的完美宣傳視頻指南 觀看了優(yōu)秀宣傳視頻的學生有5倍以上的概率報名參加課程渐逃。我們的數(shù)據(jù)顯示,高質量的促銷...
- 我不喜歡下雨,但卻喜歡在雨后的天晴用力呼吸赊堪。 不再像往日一樣濃濃的汽車尾氣,空氣里混著雨水與泥土清新的味道。 放眼...