删除指向的对象

Sir*_*Jay 0 c++ iteration memory-leaks

我有一个for循环,我正在使用指针动态设置对象.我想为下一个实例重用相同的指针,但我担心存在内存泄漏.

myPointer *obj;
for (int i = 0; i <= 10; i++) {
    obj = new Object(i);
    obj->doSomeStuff();
}
Run Code Online (Sandbox Code Playgroud)

我应该NULLfor声明的最后设置obj 吗? delete obj在这种情况下,似乎只会导致严重的问题.

编辑:我向类添加了一个重置​​方法,以重置私有变量的值,以便进行另一次传递.似乎工作得更好/更快.

Cor*_*mer 5

new你需要的任何东西delete或者你会泄漏它.

Object* obj;
for (int i = 0; i <= 10; i++) {
    obj = new Object(i);
    obj->doSomeStuff();
    delete obj;
}
Run Code Online (Sandbox Code Playgroud)

否则,只要下一次迭代出现,new另一次迭代就会Object将其分配给obj指针,而前一个对象现在已泄露.

在这种情况下,如果您不想担心自己管理内存,则甚至不需要指针.

for (int i = 0; i <= 10; i++) {
    Object obj {i};
    obj.doSomeStuff();
}  // Now obj will fall out of scope and be automatically cleaned up.
Run Code Online (Sandbox Code Playgroud)