堆栈与堆有什么区别?
的有关信息介绍如下:堆栈与堆区别为:空间不同、地址方向不同、释放不同。
一、空间不同
1、堆栈:堆栈是自动分配变量,以及函数调用的时候所使用的一些空间。
2、堆:堆是是由malloc之类函数分配的空间所在地。
二、地址方向不同
1、堆栈:堆栈的地址方向是由高向低减少性扩展,有总长度大小限制。
2、堆:堆的地址方向是由低向高增长性扩展,没有总长度大小限制。
三、释放不同
1、堆栈:堆栈由编译器自动释放,存放函数的参数值,局部变量的值等。
2、堆:堆由程序员人工进行释放, 若程序员不释放,程序结束时可能由OS回收 。