【c++】【Linux】堆和栈的区别
区别 | 堆 | 栈 |
---|
管理方式 | 由程序员手动分配 手动释放 | 由系统自动管理 |
生长方式 | 从低地址向高地址增长 | 从高地址向低地址增长 |
空间大小 | 32位linux下可占2.9G左右 | 32位Linux下占10M左右 windows下占1M左右 |
存储内容 | 动态分配的内存,常用于存储链表、对象等动态数据 | 用于存储局部变量、函数参数、函数调用的返回地址等 |
分配效率 | 低 | 高 |
碎片问题 | 容易造成内存碎片(外碎片) | 系统自动分配和释放不会造成内存碎片 |
下次说一下内存碎片(内碎片 外碎片) 以及函数调用机制