当前位置:  开发笔记 > 编程语言 > 正文

免费商店"堆"一词的起源是什么?

如何解决《免费商店"堆"一词的起源是什么?》经验,为你挑选了3个好方法。

我试图找到免费商店通常被称为堆的官方(或足够好)的原因.

除了它从数据段的末尾增长之外,我无法想到一个很好的理由,特别是因为它与堆数据结构几乎没有关系.

注意:很多人都提到它只是一大堆没有组织的东西.但对我来说,术语堆物理意味着一堆物理依赖于彼此的东西.你从下面拉出一个,其他一切都在它上面坍塌,等等.换句话说,对我来说,堆松的声音组织起来很糟糕(例如,最新的东西在上面).这并不是一个堆在大多数计算机上实际工作的方式,但如果你把东西放在堆的开头然后增长它我想它可以工作.



1> Bill the Liz..:

Knuth拒绝使用术语"堆"作为空闲内存存储的同义词.

几位作者在1975年开始将可用内存池称为"堆".但是在目前的系列丛书中,我们只会在与优先级队列相关的传统意义上使用该词.(基础算法,第3版,第435页)


太糟糕了,每个人都忽略了Knuth.内存分配和数据结构之间的(非)连接让我困惑了一段时间,我怀疑其他人也是如此.
@Pax:是的,尽管Knuth的努力,"堆"肯定流行起来.这似乎与它在C内存模型中的使用有关,在Knuth引用的时候,它本来会获得动力.
呸,Knuth.他对数据结构了解多少?:-)这是他的决定当然,尽管他的名气,他在少数派中表现良好.

2> paxdiablo..:

对于它的价值而言,早于C的ALGOL68有一个实际的关键字 heap,用于为"全局堆"中的变量分配空间,而不是loc在堆栈上分配它.

但我怀疑使用可能仅仅是因为它没有真正的结构.通过这种方式,我的意思是你不能保证在内存中得到最合适的块或下一个块,而是根据分配策略的想法,你会得到你所拥有的.

像大多数名字一样,一些只需要名字的编码员可能会想到这一点.

我经常听说它有时被称为竞技场(许多卫星之前的错误消息称"记忆竞技场已被破坏").这会在你的地址空间(电影Tron)中以角斗士的方式呈现大块记忆的图像.

最重要的是,它只是一个内存区域的名称,您也可以将其称为brk-pool或sbrk-pool(在修改它之后)或其他任何名称中的任何一个.

我记得甚至在OSI 7层模型在某人眼中闪烁之前,当我们将通信协议栈放在一起时,我们使用分层方法并且必须在每个层上为块提出名称.

我们使用块,段,块,部分和各种其他名称,所有这些都只是表示固定长度的东西.堆可能有类似的起源:

Carol:"嘿,Bob,对于一个只从大区域发出随机内存的数据结构来说,这是一个好名字?"

鲍勃:"怎么样'马粪'?"

卡罗尔:"谢谢,鲍勃,我会选择'堆',如果那对你好的话.顺便问一下,离婚怎么样?"



3> thomasrutter..:

它命名为它依靠于一个对比鲜明的图像堆.

在一堆物品中,物品按照放置在那里的顺序一个在另一个上面,你只能移除顶部的物品(不会将整个物品翻倒).

堆叠像一堆文件

在堆中,对项目的放置方式没有特定的顺序.您可以按任意顺序进入和移除项目,因为没有明确的"顶部"项目.

像一堆甘草一样堆

它在描述在堆栈和堆中分配和释放内存的两种方法方面做得相当不错.百胜!


图像现已修复:)
推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有