为什么malloc()和#x27;s池称为“a”;堆;?

为什么malloc()和#x27;s池称为“a”;堆;?,c,malloc,heap,C,Malloc,Heap,谁能解释一下为什么由malloc()/free()管理的内存池被称为堆 基于[1]:“Doug Lea对其malloc()工作原理的解释”, 我们称之为“堆”的数据结构是否被使用并不明显 我们之所以称之为“堆”是因为malloc()实现通常使用最适合的内存块选择来返回,而这在历史上是使用最小的块堆实现的,按块大小排序?堆内存池和堆数据结构彼此无关。快速检查表明,它没有列在Knuth卷1的索引中(其中包括动态内存管理结构)。因此,询问显然是不相关的,也是毫无意义的。另请看:因为堆栈提供了一个由作用

谁能解释一下为什么由
malloc()
/
free()
管理的内存池被称为堆

基于[1]:“Doug Lea对其malloc()工作原理的解释”, 我们称之为“堆”的数据结构是否被使用并不明显


我们之所以称之为“堆”是因为
malloc()
实现通常使用最适合的内存块选择来返回,而这在历史上是使用最小的块堆实现的,按块大小排序?

堆内存池和堆数据结构彼此无关。快速检查表明,它没有列在Knuth卷1的索引中(其中包括动态内存管理结构)。因此,询问显然是不相关的,也是毫无意义的。另请看:因为堆栈提供了一个由作用域规则控制的相对结构化的分配区域,而内存的“其余部分”只是在“任何地方”被请求,并或多或少地随机堆放(就像一些大学生房间里的脏衣服堆)。