如果这听起来像是幼儿园的问题,那么请原谅我;)但是,在 C++ 中,堆用于内存分配,因为……从那时起(至少是 80 年代)。它是这项工作的最佳算法,还是我们只是受困于它(就像 javascript 发生的那样……)?所有(非嵌入式)操作系统都使用堆来存储内存吗?
编辑: 那么,使用了哪些结构/算法是。它(如果)与堆算法有何关系?
无需与“堆栈”分配进行比较(网络上到处都是),或讨论 C++ 语义 - 今天的内存堆是什么?
最佳答案
听起来你在混淆 heap与 "heap" .堆数据结构很少(如果有的话)用于动态内存分配。
现在,回复:为什么动态内存分配?有时您不知道需要多少内存,也不想分配大量缓冲区以防万一。在堆上分配允许您必须在运行时更改的存储空间量。
关于c++ - 为什么要用堆来存储内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40701228/