Форум программистов, компьютерный форум CyberForum.ru

Удаление двумерного динамического массива из памяти - C++

Восстановить пароль Регистрация
 
SMYH
 Аватар для SMYH
2 / 2 / 0
Регистрация: 23.10.2013
Сообщений: 38
23.03.2014, 08:36     Удаление двумерного динамического массива из памяти #1
Допустим дан двумерный динамический массив (созданный с помощью new). Как правильно удалить его из памяти? У меня есть три варианта:
C++
1
delete dynamicArray;
C++
1
delete[] dynamicArray;
C++
1
2
3
for(int i = 0; i<n; i++){
        delete[] dynamicArray;
}
Первый вариант,наверное, неверен, потому что мы таким образом отчищаем память от одной переменной. А есть ли какая - то разница между вторыми двумя?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2014, 08:36     Удаление двумерного динамического массива из памяти
Посмотрите здесь:

Использование двумерного динамического массива C++
C++ заполнение динамического двумерного массива
C++ Правильное удаление двумерного динамического массива ( нужен ли delete[] array )
Удаление колонки (столбца) из динамического двумерного массива C++
Правильное удаление динамического двумерного массива C++ C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
recoder
 Аватар для recoder
129 / 129 / 28
Регистрация: 13.09.2013
Сообщений: 260
Записей в блоге: 2
23.03.2014, 08:55     Удаление двумерного динамического массива из памяти #2
C++
1
2
3
4
5
6
7
8
9
// Создание
int **arr = new int*[n];
for (int i = 0; i < n;  i++)
    arr[i] = new int[m];
 
// Удаление
for (int i = 0; i < n; i++)
    delete[] arr[i];
delete[] arr;
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
23.03.2014, 08:56     Удаление двумерного динамического массива из памяти #3
Вы для начала покажите как выделяете память. Освобождение должно быть прямо противоположным выделению.
Можно вообще для массива M*N выделить одним куском память для M*N и обращаться с помощью своей функции.
recoder
 Аватар для recoder
129 / 129 / 28
Регистрация: 13.09.2013
Сообщений: 260
Записей в блоге: 2
23.03.2014, 09:05     Удаление двумерного динамического массива из памяти #4
Ну, с указателем на указатель работать быстрее ведь, чем с указателем на единый кусок
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
23.03.2014, 09:23     Удаление двумерного динамического массива из памяти #5
recoder, в любом случае константа по времени. А выделений и освобождений памяти меньше.
SMYH
 Аватар для SMYH
2 / 2 / 0
Регистрация: 23.10.2013
Сообщений: 38
23.03.2014, 17:25  [ТС]     Удаление двумерного динамического массива из памяти #6
Выделение вот так вот происходит:
C++
1
2
3
4
int** dynamicArray = new int*[N];
for(int i = 0 ;i<N;i++){
        dynamicArray[i] = new int[M];
}
Yandex
Объявления
23.03.2014, 17:25     Удаление двумерного динамического массива из памяти
Ответ Создать тему
Опции темы

Текущее время: 07:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru