Gestión de memoria en la asignación de matriz 2-D
He asignado una matriz bidimensional usando el siguiente código:
// Dynamic allocation
int **matrix=new int*[n];
for(int i=0;i<n;i++)
{
matrix[i]=new int[n];
}
Esto funciona bien
En primer lugar, asignamos una matriz de punteros enteros.Luego asignamos cada uno de los punteros anteriores para apuntar a una ubicación de memoria den
enteros Esto crea nuestra matriz bidimensional.Sé que un destructor para una matriz asignada dinámicamente debería verse así:
~SquareMatrix()
{
delete [] OneDarray;
}
El énfasis está en[]
porque si no está escrito, solo se eliminará el primer elemento de la matriz.
Por motivos similares, creo que necesito colocar el[]
dos veces para eliminar toda la matriz bidimensional, como
delete [] [] matrix;
Pero esto no funciona y da un error de tiempo de compilación.
¿Cuál es la forma correcta de hacerlo?