请你来说一下堆和栈的区别?

发布于 2020-01-30 17:12:50
关注者
0
被浏览
465
1 个回答
  • 面试哥
    面试哥 2020-01-30
    为面试而生,有面试问题,就找面试哥。

    参考回答:

    1)申请方式:

    栈由系统自动分配和管理,堆由程序员手动分配和管理。

    2)效率:

    栈由系统分配,速度快,不会有内存碎片。

    堆由程序员分配,速度较慢,可能由于操作不当产生内存碎片。

    3)扩展方向

    栈从高地址向低地址进行扩展,堆由低地址向高地址进行扩展。

    4)程序局部变量是使用的栈空间,new/malloc动态申请的内存是堆空间,函数调用时会进行形参和返回值的压栈出栈,也是用的栈空间。

推荐阅读
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看