删除指向同一事物的2个指针之一

时间:2014-11-29 17:33:28

标签: c++

所以我有一个指向对象的指针数组,以及指向代码中其他对象的指针。我想要的是当我删除那些其他指针。我如何重新排列我的指针数组,以便在它的中间没有垃圾值。我有一个重新排列函数,检查NULL,但指针不指向NULL。

void Floor::rearrange(){
    for (int i=0;i<numEnemies;i++){
            if(Enemies[i] == NULL){
                    Enemies[i] = Enemies[i+1];
                    Enemies[i+1] = NULL;
            }
    }

}

2 个答案:

答案 0 :(得分:3)

自动拥有指针。 shared_ptrweak_ptrunique_ptr可以自动为您解决此问题。

使用delete是一个主要的代码味道。

答案 1 :(得分:3)

听起来你希望数组中的指针为weak_ptr,然后其他指针应为shared_ptr

这样,当删除另一个指针时,您可以安全地检测到它。