每次治疗后删除所有使用过的指针

时间:2013-04-12 09:39:44

标签: c++ visual-studio-2010

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

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

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

1 个答案:

答案 0 :(得分:1)

使用smart pointers分配您的对象,它们会自动释放。

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 - 对象会自动被销毁,因为它们是在堆栈上分配的。他们的析构函数在他们管理的对象上调用delete