栈区:(stack)由编译器自动分配释放,存放函数的参数值,局部变量的值等,其操作方式类似于数据结构中的栈。
堆区:(heap)由程序员分配释放,不释放,程序结束时可能由OS回收,与数据结构中的堆是两回事。分配方式类似于链表。
小结:堆区和栈区的区别
使用栈就如同去饭店点菜一样,只需点菜(发出申请)、付钱和吃,吃饱了就离开不需理会切菜。
洗菜等准备工作和洗碗刷锅等收尾工作。好处:快捷但自由度小。
使用堆就像我们自己动手做自己喜欢吃的东西一样,比较麻烦。但是比较符合自己的口味。而且自由度大。