您的位置:首页 > 其它

解释一下“堆栈”为什么连起来读

2013-08-22 07:22 357 查看
堆和栈明明就是两个不同的东西,但是总有人喜欢用“堆栈”这个词,甚至一些大学教授也用。本着钻牛角尖的态度,本人在网上查了一下这个词来源及用法,现总结如下:

1.“ 堆栈”这个词的诞生是历史原因:DOS下程序是独占方式,堆分为近堆和远堆,近堆和栈是在数据段开辟的同一块内存地址,栈从下往上增长,堆从上向下分配,中间没有规定分界线,所以程序控制不当,如深层次的递归,大量的动态地址分配很容易造成堆栈冲突,即堆栈地址重叠,从而造成死机和程序运行异常。堆和栈连在一起说的原因就是如此。

至于远堆则是指在数据段和代码段以外计算机所有没有使用的剩余基本内存。

补充:DOS下堆栈的分配是由程序而不是操作系统自己控制的,具体分配大小、方式随编译系统、程序模式不同而异。C语言的堆栈分配代码在启动代码中.(来自CSDN的maozefa)

2.一些学艺不精的误用了“堆栈”这个词来指代“栈”(来自CSDN的jixingzhong)。

所以有的时候“堆栈”其实指的是“栈”,至于具体指的是“栈”还是“堆和栈”要根据语境来看
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐