Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как удалить динамический массив?

2.0K
01 апреля 2011 года
oleg_159
77 / / 13.04.2008
Я объявляю динамический массив в событии TForm1::FormCreate(), а удалить его хочу в событии TForm1::FormClose() и ничего не получается, выскакивает какая-то ошибка, связанная с адресом.
В файле заголовков Unit1.h объявил переменные и сам массив
...
private: // User declarations
int n;
int m;
int p;
char ***ar;//массив ar[n][m]


...

11
01 апреля 2011 года
oxotnik333
2.9K / / 03.08.2007
как удаляешь?
надо делать delete[] для каждой "строки" каждой размерности, короче в обратном порядке, как выделалсь под него память
2.0K
01 апреля 2011 года
oleg_159
77 / / 13.04.2008
Цитата: oxotnik333
как удаляешь?
надо делать delete[] для каждой "строки" каждой размерности, короче в обратном порядке, как выделалсь под него память



Я так и делал.
Объявлял массив в событии FormCreate():
char ***ar=new char**[n];
for(int i=0; i<n; i++)
ar=new char*[m];
for(int i=0; i<n; i++)
for(int j=0; j<m; j++)
ar[j]=new char[p+1];

А удалял в событии FormClose():
for(int i=0; i<n; i++)
for(int j=0; j<m; j++)
delete[]ar[j];
for(int i=0; i<n; i++)
delete[]ar;
delete[]ar;

И при закрытии формы(срабатывании события FormClose() ) выскакивает ошибка, связанная с памятью. Т.е. удаление не происходит.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог