Stack与Heap的区别
来源:互联网 发布:淘宝拍照灯光 编辑:程序博客网 时间:2024/06/05 02:21
申明:这里所说的栈和堆是程序内存管理中的栈和堆,而不是数据结构里的栈和堆。
(1)保存的内容不同:栈里保存的是局部变量,而堆里保存的是动态申请的变量。
(2)栈里的内存系统自动申请和释放,程序执行出申请的区域,内存就会自动释放,而栈里的内存需要手动地申请和释放(malloc/free、new/delete)。如果不及时释放会造成内存泄漏(Memory Leak)现象的发生。
(3)栈的可用大小由编译器确定,是一个常数,因此可能出现溢出的现象,堆的大小由系统可用虚拟内存确定,所以堆的可用内存大小更灵活。
(4)栈的内存是连续的,堆的内存可能是不连续的。
(5)栈向低地址生长,堆向高地址生长。
(6)栈的存取效率比堆的存取效率高。
0 0
- Heap与Stack的区别
- Heap与Stack的区别
- Heap与stack的区别
- Heap与Stack的区别
- Stack与Heap的区别
- stack与heap的区别
- Heap与Stack的区别
- Stack与Heap的区别
- Heap与Stack的区别
- heap与stack的区别
- heap与stack的区别
- Heap与Stack的区别
- Stack与Heap的区别
- heap与stack的区别
- Heap与Stack的区别
- heap 与stack区别
- heap与stack区别
- stack与heap的关系与区别
- Android 好基础的知识,为面试备用的马
- java子线程全部执行完毕执行主线程代码
- [Module]matplotlib模块安装
- IPv4中IP地址分类
- AWS VS OpenStack
- Stack与Heap的区别
- 面向对象编程要点
- C++ STL 迭代器失效问题
- new与malloc的区别
- SDUT3361数据结构实验之图论四:迷宫探索
- Unable to install "XXX"
- socket服务器开发中的SO_REUSEADDR选项与让人心烦的TIME_WAIT
- windows下MySQL 5.7+ 解压缩版安装配置方法
- 题目811 变态最大值