XUEXI0.4

1、堆是一種內存管理方式,堆和棧是沒有關聯的。由於內存的容量很大,並且內存需求在時間和空間上沒有規律,所以對操作系統來說,管理內存是非常複雜的。

2、堆這種內存管理方式特點是自由。堆內存是由操作系統劃分給堆管理器來進行管理的,然後向使用者提供API來使用堆內存。在使用內存容量比較大,並且反覆使用和釋放時,使用堆內存。

3、堆內存的特點:常規使用的內存容量不限,申請及釋放需要手工操作(如果申請內存後忘記釋放內存,就會丟失這段內存,成為內存泄漏)。

4、堆內存釋放時最簡單,直接調用free釋放即可。void free(void *ptr);    內存申請時有三種類似功能的函數:malloc calloc realloc      堆內存申請必須定義大小,並且申請完內存大小不變,如果改變必須通過realloc接口。

5、堆的優勢就是靈活,劣勢就是需要手工進行,對程序員水平要求較高。

Tags: