Heap 与Stack 的区别?

alexhilton 2008-10-27 09:53:29
数据结构中的heap(堆)与stack(栈)的区别是显而易见的.
那么在操作系统中它们有什么区别呢?
为什么局部变量要放在stack中, 而全局变量要放在heap中呢?
...全文
697 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lbzhao_28 2008-10-29
  • 打赏
  • 举报
回复
和操作系统没关系的.看什么编译器的.
tailzhou 2008-10-28
  • 打赏
  • 举报
回复
我觉得这不是跟操作系统有关,而是编程语言的编译器决定他们的存储位置的;

http://topic.csdn.net/u/20080530/12/ff617ba7-4502-440f-9605-229d8c79adeb.html

goobey 2008-10-28
  • 打赏
  • 举报
回复
stack,编译器自动分配释放内存,适合存放参数值和局部变量值
heap,需手动分配释放,适合放全局变量,
另外,os中的stack和heap与数据结构中的概念上还是有区别的
九桔猫 2008-10-28
  • 打赏
  • 举报
回复
存取与分配方式不同。
ayu_J 2008-10-27
  • 打赏
  • 举报
回复
堆在存取时需要重构
Fighting Horse 2008-10-27
  • 打赏
  • 举报
回复
栈是临时的,上面定义的变量在函数返回后就没有了,所以不能保存全家变量,但是栈不需要内存分配(编译器已经做好分配了),更高效,所以临时变量尽量放在栈里
wuyi8808 2008-10-27
  • 打赏
  • 举报
回复
存取的代价是不同的。

33,010

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧