Как сделать указатель на двумерный массив указателей в c++?

Пользователь

от elda , в категории: C/C++ , 8 месяцев назад

Как сделать указатель на двумерный массив указателей в c++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от wilburn , 8 месяцев назад

@elda 

В C++ указатель на двумерный массив указателей можно объявить следующим образом:

1
2
3
4
5
6
7
int** matrix; // объявление указателя на двумерный массив указателей

matrix = new int*[rowCount]; // выделение памяти для указателей на строки

for (int i = 0; i < rowCount; ++i) {
    matrix[i] = new int[columnCount]; // выделение памяти для каждой строки
}


Освобождение памяти происходит в обратном порядке:

1
2
3
4
5
for (int i = 0; i < rowCount; ++i) {
    delete[] matrix[i]; // освобождение памяти для каждой строки
}

delete[] matrix; // освобождение памяти для указателей на строки


Обращение к элементам двумерного массива указателей происходит с использованием синтаксиса:

1
2
matrix[i][j] = value; // присваивание значения элементу
value = matrix[i][j]; // чтение значения элемента