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

Ваш аккаунт

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

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

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

Очистка ListView->Data

2.1K
06 апреля 2004 года
vaarni2
7 / / 26.12.2002
Каждый элемент списка ListView имеет указатель
типа Void на данные ListView->Data.
Вопрос такой: если использовать этот указатель
ListView->Data=new long для кахдого элемента списка ,а потом вызвать метод ListView1->Clear();
очистится ли области памяти которые были выделены оператором new или будут уже не доступны т.к. указатели уже утеряны, и как это можно проверить.
310
06 апреля 2004 года
fellow
853 / / 17.03.2003
Проверить легко - включите в опциях проекта CodeGuard и сделайте тестовую программку. Если объекты не удалятся, то по выходу из программы CodeGuard будет сильно ругаться на неосвобождённую память.

Clear очищает только сам ListView, всё, что Вы создавали сами - останется. Поэтому перед Clear пробегите в цикле, и сделайте delete для всех созданных элементов. Очень плохо, если в разных элементах ListView в члене Data хранятся указатели на разнотипные объекты. Это заставит помучиться с их ликвидацией. А самое главное, это говорит о плохой продуманности всего проекта. Не храните там указатели на разнотипные объекты!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог