c++ - 为什么要用堆来存储内存?

标签 c++ algorithm heap-memory heap

如果这听起来像是幼儿园的问题,那么请原谅我;)但是,在 C++ 中,堆用于内存分配,因为……从那时起(至少是 80 年代)。它是这项工作的最佳算法,还是我们只是受困于它(就像 javascript 发生的那样……)?所有(非嵌入式)操作系统都使用堆来存储内存吗?

编辑: 那么,使用了哪些结构/算法。它(如果)与堆算法有何关系?

无需与“堆栈”分配进行比较(网络上到处都是),或讨论 C++ 语义 - 今天的内存堆是什么?

最佳答案

听起来你在混淆 heap"heap" .堆数据结构很少(如果有的话)用于动态内存分配。

现在,回复:为什么动态内存分配?有时您不知道需要多少内存,也不想分配大量缓冲区以防万一。在堆上分配允许您必须在运行时更改的存储空间量。

关于c++ - 为什么要用堆来存储内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40701228/

相关文章:

c++ - 如何将 CString 转换为 Windows API 和使用 WCHAR 的自定义函数?

c++ - 带有 C++ 图形引擎的 Android NDK

c++ - 堆上的二维数组,哪个版本更快?

java - 在不修改 catalina.sh 的情况下设置 Java/Tomcat 堆大小(Xmx)

c++ - 序列化一个包含字符串的类,以通过套接字通过网络发送它?

c++ - 在 C++ 项目中使用 igraph

c++ - 需要帮助在 C++ 中生成深度有限的随机表达式树

创建十六进制洪水拼图的算法

algorithm - 查找棒材切割的价格

java - JMeter:jmeter.bat和java中的heapsize可以相同吗?