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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
colya
0 / 0 / 0
Регистрация: 04.02.2013
Сообщений: 12
#1

освобождение памяти delete - C++

06.02.2013, 16:30. Просмотров 319. Ответов 3
Метки нет (Все метки)

Если у меня есть указатель (pt) N-ой степени, я присвоил ему указатель на начало массива (N - 1)ой степени (через new), затем некоторому элементу массива присвоил новый указатель на начало массива и т.д.

Короче, когда я напишу delete pt освободится вся эта иерархия или только самый первый массив?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2013, 16:30     освобождение памяти delete
Посмотрите здесь:

C++ Правильное освобождение памяти
C++ полиморфизм и освобождение памяти
выделение и освобождение памяти C++
C++ Выделение и освобождение памяти
C++ Выделение-освобождение памяти
Проясните освобождение памяти C++
C++ Освобождение памяти в классах
Освобождение памяти в списках C++
Освобождение участка памяти C++
C++ Объясните правила работы с delete с указателями и массивами (корректное освобождение выделенной памяти)
C++ Правильное освобождение памяти
C++ Выделение и освобождение памяти

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Пёс
 Аватар для Пёс
228 / 76 / 4
Регистрация: 03.02.2013
Сообщений: 311
06.02.2013, 16:43     освобождение памяти delete #2
Цитата Сообщение от colya Посмотреть сообщение
Если у меня есть указатель (pt) N-ой степени, я присвоил ему указатель на начало массива (N - 1)ой степени (через new), затем некоторому элементу массива присвоил новый указатель на начало массива и т.д.

Короче, когда я напишу delete pt освободится вся эта иерархия или только самый первый массив?
Честно говоря нифига не понял.... Я лучше покажу вам на примере двухмерного
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void main()
{
     const int N = 8;
     int** ppInt = new int* arr[N];
 
     for(int i=0;i<N; i++)
          arr[i] = new int[N];
 
     for(int i=0; i<N;i++)
          delete[] arr[i];
     delete[] arr;
 
}
И точно можно сказать ещё об одном.... внутренние массивы сами себя не удалят.
colya
0 / 0 / 0
Регистрация: 04.02.2013
Сообщений: 12
06.02.2013, 16:52  [ТС]     освобождение памяти delete #3
И точно можно сказать ещё об одном.... внутренние массивы сами себя не удалят.

Ага, спасибо
Vlad Coder
Сообщений: n/a
06.02.2013, 17:43     освобождение памяти delete #4
Цитата Сообщение от colya Посмотреть сообщение
Короче, когда я напишу delete pt освободится вся эта иерархия или только самый первый массив?
освободится то, на что указывает указатель
Yandex
Объявления
06.02.2013, 17:43     освобождение памяти delete
Ответ Создать тему
Опции темы

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