0

我的想法是在每次迭代后摆脱我在函数中使用的所有指针。

我的情况:我正在使用一个计算数百万次值的循环。但是在每次迭代(i++)之后,我想释放它们而不是在即将进行相同迭代时用以前的迭代覆盖它们,以免出现一些问题。

有没有办法在几行中释放我正在使用的所有指针?

4

1 回答 1

1

使用智能指针分配您的对象,它们会自动释放。

for (int i(0); i < 10000000; ++i)
{
    std::unique_ptr<Foo> pFoo(new Foo());
    std::unique_ptr<Bar> pBar(new Bar(pFoo.get()));

    pBar->DoSomething();
}

离开循环范围时,std::unique_ptr-object 会自动销毁,因为它们是在堆栈上分配的。他们的析构函数调用delete他们管理的对象。

于 2013-04-12T09:41:32.857 回答