Управление памятью при выделении 2-D массива
Я выделил двумерный массив, используя следующий код:
// Dynamic allocation
int **matrix=new int*[n];
for(int i=0;i<n;i++)
{
matrix[i]=new int[n];
}
Это отлично работает.
Сначала мы выделяем массив целочисленных указателей.Затем мы дополнительно выделяем каждый из более ранних указателей, чтобы указать на ячейку памятиn
целые числа. Это создает наш двумерный массив.Я знаю, что деструктор для динамически размещенного массива должен выглядеть так:
~SquareMatrix()
{
delete [] OneDarray;
}
Акцент делается на[]
потому что, если он не записан, будет удален только первый элемент массива.
На том же основании, я думаю, мне нужно разместить[]
дважды, чтобы удалить весь двумерный массив, например,
delete [] [] matrix;
Но это не работает и дает ошибку времени компиляции.
Как правильно это сделать?