一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

談?wù)剝?nèi)存分配與動(dòng)態(tài)內(nèi)存分配

 西北望msm66g9f 2018-08-12

程序在內(nèi)存中是分段存儲(chǔ)的。 

代碼段:存放語句轉(zhuǎn)換的數(shù)字;程序運(yùn)行時(shí)不可修改; 
全局段:用來記錄全局變量和靜態(tài)變量的存儲(chǔ)位置;不會(huì)隨著程序的運(yùn)行而改變; 
棧:存放局部變量,塊變量,形式參數(shù)和返回值的存儲(chǔ)位置;隨著程序的運(yùn)行其大小將不斷改變;函數(shù)調(diào)用時(shí),開辟空間,函數(shù)調(diào)用結(jié)束收回其空間;不同調(diào)用函數(shù)之間遵循后進(jìn)先出的原則。 
堆:存放動(dòng)態(tài)分布的存儲(chǔ)位置; 

 

一:傳統(tǒng)數(shù)組(靜態(tài)數(shù)組)的缺點(diǎn)

1:數(shù)組的長度必須事先指定,并且是常整數(shù),不能是變量 int a[5]; 
2:傳統(tǒng)數(shù)組程序員無法由程序員釋放,只能由系統(tǒng)釋放。(并且只能在數(shù)組所在函數(shù)結(jié)束才能釋放) 
3:數(shù)組的長度在函數(shù)運(yùn)行期間不能動(dòng)態(tài)的擴(kuò)充和縮小 
4:A函數(shù)定義的傳統(tǒng)數(shù)組,在A函數(shù)結(jié)束時(shí),在B函數(shù)中是不能使用的,因?yàn)橐呀?jīng)釋放。也就是傳統(tǒng)數(shù)組不能跨函數(shù)。

區(qū)分:靜態(tài)存儲(chǔ)與內(nèi)存的靜態(tài)開辟


二:為什么要?jiǎng)討B(tài)分配內(nèi)存

用來解決傳統(tǒng)數(shù)組的四個(gè)缺陷


三:動(dòng)態(tài)內(nèi)存分配舉例,以及動(dòng)態(tài)數(shù)組的構(gòu)造

方式:malloc函數(shù),在堆開辟空間 

1:malloc是由程序員在堆棧動(dòng)態(tài)開辟空間 
2:返回值開辟空間的首地址,但是類型是void *,需要強(qiáng)制類型轉(zhuǎn)換 
3:分配的內(nèi)存空間應(yīng)該能整除類型所占的字節(jié)數(shù) 
4:包含頭文件malloc.h 
5:只能用free(p)來釋放p所指向的動(dòng)態(tài)開辟的內(nèi)存空間。 
6:對動(dòng)態(tài)內(nèi)存空間的操作,用*p來操作。 
7:可以用多個(gè)指針指向這個(gè)動(dòng)態(tài)空間 
8:當(dāng)有多個(gè)指針只向這個(gè)動(dòng)態(tài)空間時(shí),只能用free一個(gè)指針,多次重復(fù)釋放要被報(bào)錯(cuò) 
9:可以將動(dòng)態(tài)開辟的的內(nèi)存指針作為函數(shù)參數(shù)

問題:p的分配類型是動(dòng)態(tài)的還是靜態(tài)的?當(dāng)調(diào)用free(p)后,p的內(nèi)存空間會(huì)被釋放么? 
例子:動(dòng)態(tài)構(gòu)建一個(gè)一維數(shù)組:

 


動(dòng)態(tài)擴(kuò)充數(shù)組的長度,也就是在程序運(yùn)行時(shí)動(dòng)態(tài)擴(kuò)充:realloc(首地址,總共字節(jié)數(shù)) 
作用:將原來動(dòng)態(tài)開辟的動(dòng)態(tài)內(nèi)存重新開辟一個(gè)字節(jié)數(shù),如果這個(gè)數(shù)比以前的大,前面的數(shù)據(jù)保存。如果比原來的小,保留前面的數(shù)據(jù)。

 


注意:擴(kuò)充或者縮放的內(nèi)存單元是新開辟的內(nèi)存單元。這個(gè)過程中有值的拷貝過程。返回值是新開辟的地址空間首地址。


四:靜態(tài)內(nèi)存和動(dòng)態(tài)內(nèi)存的比較

靜態(tài)開辟的內(nèi)存:在棧中開辟,由編譯器分配,由系統(tǒng)自動(dòng)釋放 
動(dòng)態(tài)開辟的內(nèi)存:在堆中開辟,由程序員開辟,由程序員自動(dòng)釋放。


五:跨函數(shù)使用內(nèi)存的問題

 




    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    国产中文字幕一区二区| 日本人妻中出在线观看| 亚洲中文字幕视频在线观看| 国产精品亚洲一级av第二区| 一区二区三区亚洲天堂 | 国产精品一区二区三区日韩av | 99视频精品免费视频播放| 久热青青草视频在线观看| 国产二级一级内射视频播放| 日韩人妻中文字幕精品| 国产成人精品一区在线观看| 日本乱论一区二区三区| 国产免费黄片一区二区| 在线观看视频日韩精品| 在线免费观看一二区视频| 色婷婷亚洲精品综合网| 久草视频这里只是精品| 国产丝袜女优一区二区三区| 在线播放欧美精品一区| 欧美日韩国产亚洲三级理论片| 一区二区三区日韩在线| 国产精品午夜小视频观看| 国产一级内射麻豆91| 国产女优视频一区二区| 好吊妞视频只有这里有精品| 久久精品欧美一区二区三不卡| 精品人妻一区二区三区在线看| 一区二区欧美另类稀缺| 青青草草免费在线视频| 大香伊蕉欧美一区二区三区| 成人亚洲国产精品一区不卡| 国产精品九九九一区二区| 国产精品制服丝袜美腿丝袜| 午夜亚洲精品理论片在线观看| 视频一区二区 国产精品| 久久中文字幕中文字幕中文| 日本深夜福利视频在线| 亚洲欧美黑人一区二区| 国产伦精品一区二区三区高清版 | 精品高清美女精品国产区| 欧美日韩少妇精品专区性色|