C++后端面试(4):HIGHER

本文深入探讨了计算机科学中堆和栈的基本概念,包括它们在内存分配中的角色、数据结构特性及各自的应用场景。通过对比静态内存分配、栈分配和堆分配,阐述了不同内存管理方式的特点,以及堆作为完全二叉树结构和栈遵循先进先出原则的数据结构属性。

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

  1. Amdroid Activity 生命周期
  2. 野指针的产生原因
  3. 多线程讲讲
  4. socket tcp和udp
  5. 堆和栈的区别
  6. 静态链接库和动态链接库
  7. 数据结构知道哪些
  8. vector和map区别
  9. 链表写一个vector

5. 堆和栈的区别

本来这个问题比较简单;不过为了强化基础还是要温习一下;

首先 堆 和 栈 基本上算法有两个意思吧都:一个是 内存,一个是数据结构

5.1 内存

内存分配主要分三种

  • 一种是静态内存分配。它是由编译器自动分配和释放的,即内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在,直到整个程序运行结束时才被释放,如全局变量与 static 变量。
  • 另外一种是栈分配。它同样也是由编译器自动分配和释放的,即在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元将被自动释放。需要注意的是,栈内存分配运算内置于处理器的指令集中,它的运行效率一般很高,但是分配的内存容量有限。
  • 最后一种是堆分配。此方法主要需要程序员自己分配和释放,C语言一般对应malloc 和 free。C++ 就是new 和 delete了.也就是说,动态内存的整个生存期是由程序员自己决定的,使用非常灵活。需要注意的是,如果在堆上分配了内存空间,就必须及时释放它,否则将会导致运行的程序出现内存泄漏等错误。

5.1 数据结构

  • 栈,先进先出
  • 堆,完全二叉树结构

参考文献
百度百科

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CoomCon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值