因为栈上的数据在函数返回的时候就会被释放掉,所以无法将数据传递至外部,全局变量没有办法动态地产生,只能够在编译的时候定义,这种情况下,堆是一种合理的选择

malloc 是怎么实现的呢?有一种做法是通过系统调用来实现,但是当程序堆堆的操作频繁的时候,会严重影响程序的性能,比较好的做法是程序向操作系统申请一块适当大小的对堆空间,然后由程序管理这块空间。

Linux 进程堆管理 Windows 进程堆管理

堆分配算法