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)
我应该NULL
在for
声明的最后设置obj 吗? delete obj
在这种情况下,似乎只会导致严重的问题.
编辑:我向类添加了一个重置方法,以重置私有变量的值,以便进行另一次传递.似乎工作得更好/更快.
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)