C語言----內(nèi)存管理


動(dòng)態(tài)分配內(nèi)存


編程時(shí)吆豹,如果預(yù)先知道數(shù)組的大小,那么定義數(shù)組時(shí)就比較容易占遥。例如俯抖,一個(gè)存儲(chǔ)人名的數(shù)組,它最多容納 100 個(gè)字符瓦胎,所以可以定義數(shù)組芬萍,如下所示:

char name[100];

但是,如果預(yù)先不知道需要存儲(chǔ)的文本長(zhǎng)度搔啊,例如向存儲(chǔ)有關(guān)一個(gè)主題的詳細(xì)描述柬祠。在這里,我們需要定義一個(gè)指針负芋,該指針指向未定義所學(xué)內(nèi)存大小的字符漫蛔,后續(xù)再根據(jù)需求來分配內(nèi)存,如下所示:

當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:

Name = Zara Ali

Description: Zara ali a DPS student in class 10th

上面的程序也可以使用?calloc()?來編寫莽龟,只需要把 malloc 替換為 calloc 即可蠕嫁,如下所示:

calloc(200, sizeof(char));

當(dāng)動(dòng)態(tài)分配內(nèi)存時(shí),有完全控制權(quán)毯盈,可以傳遞任何大小的值剃毒。而那些預(yù)先定義了大小的數(shù)組,一旦定義則無法改變大小搂赋。



重新調(diào)整內(nèi)存的大小和釋放內(nèi)存


當(dāng)程序退出時(shí)赘阀,操作系統(tǒng)會(huì)自動(dòng)釋放所有分配給程序的內(nèi)存,但是厂镇,建議在不需要內(nèi)存時(shí)纤壁,都應(yīng)該調(diào)用函數(shù)?free()?來釋放內(nèi)存。

或者捺信,可以通過調(diào)用函數(shù)?realloc()?來增加或減少已分配的內(nèi)存塊的大小酌媒。讓我們使用 realloc() 和 free() 函數(shù),再次查看上面的實(shí)例:

當(dāng)上面的代碼被編譯和執(zhí)行時(shí)迄靠,它會(huì)產(chǎn)生下列結(jié)果:

Name = Zara Ali

Description: Zara ali a DPS student.She is in class 10th

可以嘗試一下不重新分配額外的內(nèi)存秒咨,strcat() 函數(shù)會(huì)生成一個(gè)錯(cuò)誤,因?yàn)榇鎯?chǔ) description 時(shí)可用的內(nèi)存不足掌挚。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末雨席,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子吠式,更是在濱河造成了極大的恐慌陡厘,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件特占,死亡現(xiàn)場(chǎng)離奇詭異糙置,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)是目,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門谤饭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人懊纳,你說我怎么就攤上這事揉抵。” “怎么了嗤疯?”我有些...
    開封第一講書人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵冤今,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我身弊,道長(zhǎng)辟汰,這世上最難降的妖魔是什么列敲? 我笑而不...
    開封第一講書人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮帖汞,結(jié)果婚禮上戴而,老公的妹妹穿的比我還像新娘。我一直安慰自己翩蘸,他們只是感情好所意,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著催首,像睡著了一般扶踊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上郎任,一...
    開封第一講書人閱讀 49,741評(píng)論 1 289
  • 那天秧耗,我揣著相機(jī)與錄音,去河邊找鬼舶治。 笑死分井,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的霉猛。 我是一名探鬼主播尺锚,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼惜浅!你這毒婦竟也來了瘫辩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤坛悉,失蹤者是張志新(化名)和其女友劉穎伐厌,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體裸影,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡弧械,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了空民。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡羞迷,死狀恐怖界轩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情衔瓮,我是刑警寧澤浊猾,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站热鞍,受9級(jí)特大地震影響葫慎,放射性物質(zhì)發(fā)生泄漏衔彻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一偷办、第九天 我趴在偏房一處隱蔽的房頂上張望艰额。 院中可真熱鬧,春花似錦椒涯、人聲如沸柄沮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽祖搓。三九已至,卻和暖如春湖苞,著一層夾襖步出監(jiān)牢的瞬間拯欧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來泰國打工财骨, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留镐作,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓蚓再,卻偏偏與公主長(zhǎng)得像滑肉,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子摘仅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

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

  • 前言 C語言作為一門應(yīng)用途廣泛靶庙、功能強(qiáng)大、使用靈活的面向過程式編程語言娃属。既可用于編寫應(yīng)用軟件六荒,又能用于編寫系統(tǒng)軟件...
    老板娘來盤一血閱讀 12,970評(píng)論 32 83
  • 動(dòng)態(tài)內(nèi)存分配 我們需要?jiǎng)討B(tài)內(nèi)存分配的原因 C語言中的一切操作都是基于內(nèi)存的 變量和數(shù)組都是內(nèi)存的別名,如何分配這些...
    PcDack閱讀 785評(píng)論 2 1
  • 謹(jǐn)記 人生有兩條路矾端,一天需要用心走掏击,叫做夢(mèng)想;一條需要用腳走秩铆,叫做現(xiàn)實(shí)砚亭。心走的太快,會(huì)迷路的殴玛;腳走的太快捅膘,會(huì)摔倒的...
    長(zhǎng)風(fēng)留言閱讀 5,913評(píng)論 7 16
  • 前言 基礎(chǔ)篇介紹了一些關(guān)于C語言內(nèi)存管理的常見概念,包括內(nèi)存編址滚粟、堆棧寻仗、內(nèi)存操作函數(shù)、變量和數(shù)組存儲(chǔ)簡(jiǎn)介等等凡壤。本文...
    老板娘來盤一血閱讀 5,599評(píng)論 10 33
  • 對(duì)于一個(gè)C語言程序而言署尤,內(nèi)存空間主要由五個(gè)部分組成代碼段(.text)耙替、數(shù)據(jù)段(.data)、BSS段(.bss)...
    朱森閱讀 389評(píng)論 0 0