堆 & 栈

本文详细比较了堆和栈在内存管理上的区别,包括堆的动态大小、可能的内存泄漏和效率较低,以及栈的静态大小、线程安全和适合数据大小已知的情况。
摘要由CSDN通过智能技术生成

堆和栈的区别-八股

堆:动态变化

优点:大小不固定,可以动态扩容(malloc free)

缺点:可能会产生内存泄漏,比如malloc的没有free;容易产生内存碎片;

线程不安全,堆内存可以被一个进程内的所有线程访问,多线程操作容易产生问题

栈:栈的大小在编译的时候就定好了,

优点:线程安全,栈空间存储的数据只能被当前线程访问;分配回收由系统来做

由于堆是动态,栈是静态,所以堆的效率要比栈慢;

数据size不确定用堆;确定的话用栈,提高运行速度;

数据大小非常庞大的情况下使用堆不使用栈;

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值