如何删除这个2维指针数组?制作析构函数

fre*_*inn 1 c++ arrays pointers delete-operator

malla = new Celula**[n + 2];  
for(int i = 0 ; i < n + 2 ; ++i){  
     malla[i] = new Celula*[m + 2];
     for(int j = 0 ; j < m + 2 ; ++j){
         malla[i][j] = new Celula[m];
     }
}
Run Code Online (Sandbox Code Playgroud)

我正在制作这段代码并且我像这样分配内存(我想要一个n*m指向Celula的指针数组,好吗?现在我需要一个析构函数.

现在我不知道如何访问此数组中的对象,并且:

malla[i][j].setestado(true);
Run Code Online (Sandbox Code Playgroud)

不起作用.

Kon*_*lph 5

不要使用指针.

std::vector<std::vector<Celula> > malla(n, std::vector<Celula>(m));

// …
malla[1][2].setestado(true);
Run Code Online (Sandbox Code Playgroud)

Upshot:一行而不是七行,更容易使用,无需delete任何地方.

另外,在代码中使用英语标识符是常规的.如果不出意外,这样做的好处是,如果人们不会说与您相同的语言,那么人们可以更好地帮助您.