堆和栈的区别

本文详细解释了操作系统中堆栈的概念及使用方式,并对比了数据结构中的堆栈概念,旨在帮助读者理解不同场景下堆栈的区别及其特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

堆栈的概念一直比较朦胧,今天做一下梳理总结

参考:
http://kb.cnblogs.com/page/501239/
http://www.cnblogs.com/mysticCoder/p/4921724.html
http://www.cnblogs.com/perfy/p/3820594.html

此处的堆、栈,指的是操作系统中对内存的使用方式,不同于数据结构中的堆、栈的概念!!!
  • 为执行线程留出的内存空间,都在Ram中。可用来存放局部变量,引用变量(引用在栈里,引用的内容在堆里)。
  • 类似于数据结构的栈,后进先出。
  • 由操作系统分配,分配时大小就确定了,使用完毕立即回收。
  • 访问速度快,只使用指针移动。但空间比较小。
  • 为动态分配留出的内存空间,都在Ram中。可用来存放手动new的对象和数组。
  • 不同于数据结构的堆(是一个树),内存分配的堆是以链表结构存在的。
  • 操作系统通过调用语言的运行时进行分配,初始分配一个大小,在使用时可以动态扩展,使用完成后若不手动释放,不会立即释放,要等待垃圾回收时才会释放。
  • 访问速度慢。若需要分配大亮内存时推荐使用。

注:数据结构中的堆栈概念
栈:先进后出的数据结构。
堆:一棵树。

转载于:https://www.cnblogs.com/shanelau/p/6438130.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值