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