C语言内存管理之堆
內(nèi)存管理之堆
- 什么是堆
- 堆內(nèi)存的特點(diǎn)
- 堆內(nèi)存的特點(diǎn)
- 堆的優(yōu)勢和劣勢
什么是堆
堆是一種內(nèi)存管理方式,內(nèi)存管理對操作系統(tǒng)來說是一件非常復(fù)雜的事情,因?yàn)槭紫葍?nèi)存容量很大,其次內(nèi)存需求在時間和大小上沒有規(guī)律(操作系統(tǒng)上運(yùn)行著幾十、幾百、幾千個進(jìn)程都會申請或者釋放內(nèi)存,申請或者釋放內(nèi)存塊大小隨意)。堆這種內(nèi)存管理方式特點(diǎn)就是自由(隨時申請,釋放,大小隨意)。堆內(nèi)存是操作系統(tǒng)劃分給堆管理器來管理的,然后向使用者(用戶進(jìn)程)提供API(malloc 和 free)來使用堆內(nèi)存。
當(dāng)需要的內(nèi)存容量比較大的時候,需要反復(fù)使用及釋放時,很多數(shù)據(jù)結(jié)構(gòu)(比如鏈表)的實(shí)現(xiàn)都要時候用堆內(nèi)存。
堆內(nèi)存的特點(diǎn)
特點(diǎn)1:容量不限(常規(guī)使用需求的容量都能滿足)
特點(diǎn)2:申請及釋放都要手工完成,如果申請了沒有釋放,再用就會繼續(xù)申請新的內(nèi)存,造成內(nèi)存泄露,這是很嚴(yán)重的BUG。
堆內(nèi)存的特點(diǎn)
C語言操作堆內(nèi)存的接口(malloc free)
堆內(nèi)存在釋放的時候最簡單,直接調(diào)用free釋放即可。 Void free(void *ptr);
堆內(nèi)存申請時,有三個可選擇的類似功能的函數(shù):mall
總結(jié)
- 上一篇: lc振荡电路工作原理视频讲解(lc振荡电
- 下一篇: 炫舞情侣名字2个字可爱(炫舞情侣名字2个