我需要在循环中删除指针吗?

时间:2014-05-07 23:09:27

标签: c++ pointers

如果我有这样的话:

for(MyClass* m : a_container){
    //
    //Do something with m
    //
    //delete m;    ?
}

//delete m;    ?

我是否需要在每次循环迭代中删除m,或者只是在结尾处删除,因为正在重复使用相同的指针?

注意:我知道我应该使用shared_ptr,但这是出于特定原因。

1 个答案:

答案 0 :(得分:1)

问题不在于是否应删除m,而是指向的内容应该是什么。如果要迭代其元素为指针且需要在该时间点删除的容器,则可以执行delete m;m本身不需要在堆栈上创建时删除,在创建实际指针时没有使用new,因此无需调用delete。 / p>