对于提出有关删除指针的问题,我感到有点愚蠢,但是我需要确保以正确的方式删除指针,因为我目前正在执行程序的调试过程。
基本上,我在头文件中定义了一些指针数组,如下所示:
AsteroidView *_asteroidView[16];
然后在for循环中初始化它们:
for(int i = 0; i < 16; i++)
{
_asteroidView[i] = new AsteroidView();
}
好的,到目前为止,一切正常。
当我最终需要在析构函数中删除它们时,请使用以下代码:
for(int i = 0; i < 16; i++)
{
delete _asteroidView[i];
}
这就是我需要做的吗?我感觉是这样,但是我担心内存泄漏。
不感兴趣...
与对象数组相比,指向对象的数组之间有很大区别吗?
最佳答案
这是对的。但是,您可能要考虑使用Boost.PointerContainer,从而省去了手动资源管理的麻烦:
boost::ptr_vector<AsteroidView> _asteroidView;
for(int i = 0; i < 16; i++)
{
_asteroidView.push_back(new AsteroidView());
}
您不必管理删除操作,容器会为您完成删除操作。这项技术称为RAII,如果您想使用C++玩乐,就应该了解一下:
关于您的编辑:有一些区别,但是我想最重要的是:
关于c++ - 删除指针数组-我做对了吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5423821/