如何删除方法中没有错误的指针?

时间:2016-04-18 13:20:47

标签: c++

这是我班上的方法:

void StartProgram()
{
    int q = 0;
    cout << "\nEnter figures quantity\n";
    cin >> q;
    Figure* Temp;
    for (int i = 0; i < q; i++)
    {
        Temp = new Figure;
        Temp->CreateFigure(255, 3);
        compose.insert(compose.end(), Temp);
        delete Temp;
    }
}

此方法填充向量&#34;撰写&#34;通过类&#34;图&#34;的对象。对于此任务,我使用临时指针变量。当我试图删除这个Temp变量时,为了避免内存泄漏 - 一切都出错了。没有这个删除 - 程序运行良好。我知道,也许这个问题非常愚蠢,但我真的不知道在这种情况下我应该做些什么,因为我认为只是离开这种方法而不释放内存是不可取的。

这是一个错误窗口: error window

1 个答案:

答案 0 :(得分:1)

如果必须使用指针(例如,你确实有一个多态对象的向量),请使用unique_ptr:

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setClassName("com.android.settings","com.android.settings.LanguageSettings");            
startActivity(intent);

如果您不需要多态对象数组,只需将类型为Figure的对象放入向量中。