为什么运行时堆用于C风格语言中的动态内存分配,数据结构都称为"堆"?有一些关系吗?
我试图找到免费商店通常被称为堆的官方(或足够好)的原因.
除了它从数据段的末尾增长之外,我无法想到一个很好的理由,特别是因为它与堆数据结构几乎没有关系.
注意:很多人都提到它只是一大堆没有组织的东西.但对我来说,术语堆物理意味着一堆物理依赖于彼此的东西.你从下面拉出一个,其他一切都在它上面坍塌,等等.换句话说,对我来说,堆松的声音组织起来很糟糕(例如,最新的东西在上面).这并不是一个堆在大多数计算机上实际工作的方式,但如果你把东西放在堆的开头然后增长它我想它可以工作.
我刚刚在一本java书中读到这句话,说java中的Objects驻留在堆上.是否使用了堆,因为它是存储数据和快速检索数据的最佳方式?
我只是想知道数据结构是初学者.我的意思是为什么不堆叠或其他东西?
任何人都可以解释为什么由malloc()/ 管理的内存池free()被称为堆?
基于[1]:http://www.google.com/url? q = http://gee.cs.oswego.edu/dl/html/malloc.html&sa=D&sntz=1&usg=AFQjCNHaQLotbBKKwYqxiiYWN1146BWzFw"Doug Lea的解释他的malloc()如何工作",我们称之为"堆"的数据结构根本不被使用.
我们称之为"堆",因为malloc()实现使用最适合的内存块选择来返回,这在历史上是使用最小块的块来实现的,按块大小排序?
或者它不使用堆"数据结构".分配给内存的名称(内存池)刚刚被称为"堆"?
如果是,那么Heap Data-Structure和Heap之间的任何关系就像在Memory of Memory中一样吗?