嵌入式学习小组
直播中

王秀兰

7年用户 1375经验值
私信 关注

堆和栈的区别是什么

在回答完进程的虚拟地址空间布局之后(上一篇),面试官可能抓住堆和栈深入展开。堆和栈的区别①管理方式:栈由编译器自动管理;堆由程序员控制,使用方便,但易产生内存泄露。②生长方向:栈向低地址扩展(即”向下生长”),是连续的内存区域;堆向高地址扩展(即”向上生长”),是不连续的内存区域。这是由于系统用链表来存储空闲内存地址,自然不连续,而链表从低地址向高地址遍历。③空间大小:栈顶地址和栈的最大容量由系统预先规定(通常默认2M或10M);堆的大小则受限于计算机系统中有效的虚拟内存,32位Linux系统中堆内

更多回帖

发帖
×
20
完善资料,
赚取积分