内存中的栈和堆

内存中的栈和堆,与数据结构中栈和堆是两码事。

内存中分为栈,堆,静态存储区,程序代码区。

1. 空间上

栈:空间小,远小于堆内存,所以常有栈溢出错误。主要存放 函数地址,函数参数,局部变量等。
堆:空间大,主要存放new出来的对象和malloc申请的空间

2. 释放方式上

栈:由系统自动申请和回收,只由单线程使用
堆:由程序分配,使用new或malloc申请,使用free或delete释放。不手动释放,程序结束后系统会自动回收

3. 访问速度上

栈:速度快,是连续内存,集中在内存块附近
堆:速度慢,因为堆内存是不连续的

原文地址:https://www.cnblogs.com/mengff/p/12846864.html