![]() |
1
33
Knuth拒绝将术语“heap”用作空闲内存存储的同义词。
|
![]() |
2
17
值得一提的是,在C之前的algol68
关键字
但我怀疑这可能只是因为它没有真正的结构。我的意思是,你不能保证在内存中得到最合适的块或下一个块,相反,你将根据分配策略的突发奇想得到你得到的。 像大多数名字一样,可能是某个编码人员想到的,他只需要一个名字。 我经常听说它有时被称为竞技场(许多卫星之前的一条错误消息称“记忆竞技场已被破坏”)。这会在你的地址空间(一部电影《创世纪》)中以角斗士的方式呈现出记忆的片段。 总之,它只是一个内存区域的名称,您也可以将其称为BRK池或SBRK池(在调用修改它之后),或者其他十几个名称中的任何一个。 我记得当我们把通信协议栈放在一起的时候,甚至在OSI 7层模型在别人眼里闪烁之前,我们使用了分层的方法,并且必须在每个层为这些块提供名称。 我们使用块、段、块、段和各种其他名称,所有这些都只是表示固定长度的东西。可能是堆有类似的来源:
|
![]() |
3
16
它被命名为一个堆,因为它让人联想到一个 堆栈 .
它非常好地描述了在堆栈和堆中分配和释放内存的两种方法。百胜! |
![]() |
4
3
这是无序的。存储的“堆”。 这不是命令 heap data structure . |
![]() |
5
3
我不知道它是否是第一个,但Algol68有关键字“heap”,用于从空闲内存堆分配内存。 “heap”的首次使用可能出现在1958年,当时约翰·麦卡锡发明了Lisp的垃圾收集和algol 68的开发。 |
![]() |
6
2
这是一大堆杂乱无章的垃圾,如果你不知道该往哪里看,什么都找不到。 |
![]() |
7
1
就像Java和JavaScript一样,堆(自由存储)和堆(数据结构)被命名为确保我们的友爱对局外人是不可穿透的,从而保证我们的工作安全。 |
![]() |
8
1
我一直认为与堆栈相比,它是一种很巧妙的描述方法。堆就像一个过度生长、无序的堆栈。 |
![]() |
9
0
堆通常具有以下特性:
所以你有一些东西可以存储一堆大小不同的块,并以一些通常不可预测的顺序返回它们。如果不是“堆”,你怎么称呼它? |