例如:
for (i=0;i<10;i++)
{
myclass = new myclass();
// do stuff with myclass
}
问题:
- 在这种情况下,通过 10 次分配分配的所有内存将如何被检索?
- 执行结束时我的内存占用是多少?
- 使用 C++ 中的删除功能,可以更好地控制这一点,但在这种情况下,对于第二次迭代,myclass 会简单地进行新的分配并继续前进吗?
例如:
for (i=0;i<10;i++)
{
myclass = new myclass();
// do stuff with myclass
}
问题:
由于在下一次迭代*之后不再有对每个新对象的引用,因此它们有资格被垃圾收集。但是因为你不知道垃圾收集何时会发生,所以对于最终的内存占用量可能没有直接的答案。
有关详细信息,请参阅MSDN:垃圾收集。
* 除非构造函数在某个地方添加对对象的引用,否则它会粘住。