基本上,我正在编写一个 RPG 游戏,它有一个名为“Piece”的父对象类型,它代表地图上的一块或对象。Map 类有一个指向这些 Piece 对象的二维指针数组,它在 Map.h 头文件中声明为:
Piece *** level;
并且当使用带有要加载的地图目录的参数调用地图类时,它会加载地图文件并获取其尺寸。它获取要分配的地图的高度和宽度。在我的关卡数组中,我想把它当作这个 level[x][y] ,其中 x 是地图上的 x 坐标,y 是地图上的 y 坐标。我已经完成了这样的分配:
level = new Piece**[width];
for (int i = 0; i < width; i++)
{
level[i] = new Piece*[height];
}
我还初始化了所有元素:
for (int i = 0; i < height; i++)
for (int k = 0; k < width; k++)
level[k][i] = 0;
现在我的游戏可以正常运行了,但是我不知道如何释放关卡数组,所以它会导致内存泄漏。我尝试过这样的释放:
for (int i = 0; i < height; i++)
for (int k = 0; k < width; k++)
if (level[k][i] != 0)
delete level[k][i];
我已经尝试了上面的代码,但无济于事。
请帮助我,我不知道如何释放这个二维指针数组,在此先感谢。