1、堆是一种内存管理方式,堆和栈是没有关联的。由于内存的容量很大,并且内存需求在时间和空间上没有规律,所以对操作系统来说,管理内存是非常复杂的。

2、堆这种内存管理方式特点是自由。堆内存是由操作系统划分给堆管理器来进行管理的,然后向使用者提供API来使用堆内存。在使用内存容量比较大,并且反复使用和释放时,使用堆内存。

3、堆内存的特点:常规使用的内存容量不限,申请及释放需要手工操作(如果申请内存后忘记释放内存,就会丢失这段内存,成为内存泄漏)。

4、堆内存释放时最简单,直接调用free释放即可。void free(void *ptr);    内存申请时有三种类似功能的函数:malloc calloc realloc      堆内存申请必须定义大小,并且申请完内存大小不变,如果改变必须通过realloc接口。

5、堆的优势就是灵活,劣势就是需要手工进行,对程序员水平要求较高。