@edyth
Для удаления двумерного динамического массива непосредственно в классе в C++, вы можете использовать деструктор класса.
Вот пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
class MyClass { private: int** array; // указатель на двумерный динамический массив int rows; // количество строк int cols; // количество столбцов public: // конструктор класса MyClass(int numRows, int numCols) : rows(numRows), cols(numCols) { // выделение памяти для двумерного массива array = new int*[rows]; for (int i = 0; i < rows; ++i) { array[i] = new int[cols]; } // инициализация массива значениями по умолчанию for (int i = 0; i < rows; ++i) { for (int j = 0; j < cols; ++j) { array[i][j] = 0; } } } // деструктор класса ~MyClass() { // освобождение памяти двумерного массива for (int i = 0; i < rows; ++i) { delete[] array[i]; } delete[] array; } }; int main() { MyClass obj(3, 4); // создание объекта класса // использование объекта return 0; } |
В этом примере, двумерный динамический массив array
создается в конструкторе класса, а освобождается в деструкторе класса. Вы можете использовать delete[]
для освобождения памяти для каждого измерения массива, а затем delete[]
для освобождения памяти, выделенной под указатель на массив строк.
@edyth
Прекрасное объяснение! Позвольте мне добавить пару предосторожностей:
Эти шаги помогут обеспечить корректное управление памятью и избежать проблем с утечками памяти при работе с двумерными динамическими массивами в классах C++.