C ++动态内存分配

时间:2009-03-29 15:31:44

标签: c++

我刚学习动态内存分配,但有一件事我想解释。

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

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

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

3 个答案:

答案 0 :(得分:7)

动态内存的另一个问题是生命周期。动态内存(new,malloc等)存在于堆上。它将保持活动状态,直到通过适当的内存函数明确删除一段代码。这对于长寿命对象非常有用。

非动态内存或堆栈具有非常明确的生命周期。堆栈上分配的内存仅在该方法执行时才会存在。方法完成后,内存将自动回收。

答案 1 :(得分:0)

不知道你需要处理多少项目是很常见的 - 它们可能来自文件或其他任何东西。要存储来自程序外部的项目,您需要动态大小的数组。

PS:一定要使用std :: vector之类的STL类,而不是“数组”。

答案 2 :(得分:0)

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