Управление памятью при выделении 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;

Но это не работает и дает ошибку времени компиляции.

Как правильно это сделать?

Ответы на вопрос(2)

Ваш ответ на вопрос