代码之家  ›  专栏  ›  技术社区  ›  Ikke

C++动态内存分配

c++
  •  0
  • Ikke  · 技术社区  · 17 年前

    我只是在学习动态内存分配,但有一件事我想解释一下。

    动态分配的一个用途是用于动态大小的数组,我很清楚。另一种用途是用于普通对象。

    什么情况下应该使用它?这是因为通常对象被推到堆栈上,并且可能被弹出吗?

    如何识别应该使用动态内存分配的情况?

    3 回复  |  直到 17 年前
        1
  •  7
  •   Will Dean    17 年前

    动态内存的另一个问题是生存期。动态内存(new、malloc等…)在堆中。它将保持活动状态,直到通过适当的内存函数被一段代码显式删除。这对长寿的物体非常有用。

    非动态存储器或堆栈具有非常确定的生存期。堆栈上分配的内存只有在该方法执行时才在附近。一旦方法完成,内存将被自动回收。

        2
  •  0
  •   Jimmy J    17 年前

    不知道你要处理多少项是很常见的——它们可能来自一个文件或其他什么文件。要存储来自程序外部的项,需要动态大小的数组。

    PS:一定要使用std::vector之类的stl类,而不是“array”。

        3
  •  0
  •   kyku    17 年前

    当您不知道需要分配多少对象时,您需要动态分配。