3

例如:

for (i=0;i<10;i++)
{
   myclass = new myclass();
   // do stuff with myclass
}

问题:

  1. 在这种情况下,通过 10 次分配分配的所有内存将如何被检索?
  2. 执行结束时我的内存占用是多少?
  3. 使用 C++ 中的删除功能,可以更好地控制这一点,但在这种情况下,对于第二次迭代,myclass 会简单地进行新的分配并继续前进吗?
4

1 回答 1

7

由于在下一次迭代*之后不再有对每个新对象的引用,因此它们有资格被垃圾收集。但是因为你不知道垃圾收集何时会发生,所以对于最终的内存占用量可能没有直接的答案。

有关详细信息,请参阅MSDN:垃圾收集

* 除非构造函数在某个地方添加对对象的引用,否则它会粘住。

于 2012-12-18T01:50:41.630 回答