“堆栈”这个术语在计算机科学中有多种解释,主要有两种常见的含义:堆(Heap)和栈(Stack)。这两者通常是指内存管理中两种不同的内存区域。我们来详细探讨一下它们的工作原理、区别和应用。
1. 栈(Stack)
栈是一种后进先出(LIFO,Last In First Out)的数据结构。我们常常把栈比作一个装盘子的桌子,新的盘子(数据)总是放在最上面,拿盘子时也是拿最上面的那个。栈的工作方式类似于一堆东西叠起来,最先放的会被最后拿走。
栈的特点:
- 内存分配:栈是由操作系统自动管理的内存区域,用于存储局部变量、函数调用的返回地址等。
- 生命周期:栈上的数据在函数调用时自动创建,函数执行完毕后自动销毁。
- 空间大小:栈的空间通常比较小,因为操作系统为每个线程分配的栈空间有限。栈的大小通常固定,通常是几 MB(例如:1MB、8MB等)。
- 效率:栈内存的分配和









![[CISCN 2022 初赛]ezpop(没成功复现)](https://i-blog.csdnimg.cn/direct/6e88e42db94a4f86a814f57c989fca8c.png)



![[Windows] 轻量级景好鼠标录制器 v2.1 单文件版,支持轨迹+鼠标键盘录制复刻](https://i-blog.csdnimg.cn/direct/16ee1cbf2f1e4d399dc7ed48bcf73b64.png)


![网络安全信息收集[web子目录]:dirsearch子目录爆破全攻略以及爆破字典结合](https://i-blog.csdnimg.cn/direct/8723c67eafb447c6909893a91b17cf03.jpeg)


