栈和堆的区别「堆和栈有什么区别,在编程中如何体现」( 二 )


2、堆:堆是是由malloc之类函数分配的空间所在地 。
二、地址方向不同
1、堆栈:堆栈的地址方向是由高向低减少性扩展,有总长度大小限制 。
2、堆:堆的地址方向是由低向高增长性扩展,没有总长度大小限制 。
三、释放不同
1、堆栈:堆栈由编译器自动释放,存放函数的参数值,局部变量的值等 。
2、堆:堆由程序员人工进行释放,若程序员不释放,程序结束时可能由OS回收。

推荐阅读