所以我有一个指向对象的指针数组,以及指向代码中其他对象的指针。我想要的是当我删除那些其他指针。我如何重新排列我的指针数组,以便在它的中间没有垃圾值。我有一个重新排列函数,检查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;
}
}
}
答案 0 :(得分:3)
自动拥有指针。 shared_ptr
,weak_ptr
和unique_ptr
可以自动为您解决此问题。
使用delete
是一个主要的代码味道。
答案 1 :(得分:3)
听起来你希望数组中的指针为weak_ptr
,然后其他指针应为shared_ptr
。
这样,当删除另一个指针时,您可以安全地检测到它。