1 | |||||||||||||||||||||
Очистка памяти13.11.2015, 18:08. Показов 1784. Ответов 12
Метки нет (Все метки)
Добрый день.
В .h файле объявляю кнопку так
Ну как оказалось это не правильное удаление, она продолжает висеть в памяти, и мне приходиться делать так
0
|
13.11.2015, 18:08 | |
Ответы с готовыми решениями:
12
Очистка памяти. Собственный компонент. очистка памяти Работа с графикой TCanvas. Очистка памяти Очистка графика + очистка формы |
Native x86
5605 / 3348 / 952
Регистрация: 13.02.2013
Сообщений: 10,619
|
|
13.11.2015, 18:15 | 4 |
Любой блок динамической памяти после высвобождения не затирается мгновенно. Память просто помечается как свободная, но продолжает хранить те данные, которые были туда когда-то записаны. Только при новых операциях с памятью, блок может быть снова выделен для повторного использования и тогда его содержимое будет перезаписано новыми данными. А до этого момента удаленный объект действительно может продолжать выглядеть живым.
А присвоение NULL всего лишь делает невалиной ссылку на участок памяти, где лежат остатки объекта, никакого дополнительного высвобождения памяти при этом не происходит.
1
|
13.11.2015, 22:09 [ТС] | 8 |
А еще неприятно,что удаляешь владельца и родителя.а все дочерки остаются висеть.
Ну тут получается строк кода больше(мелочь конечно.а не приятно),..ну и в обще поиск компонентов на форме как то так, задавать имена там или еще че то, стараюсь избегать этого...=)
0
|
13.11.2015, 23:49 [ТС] | 10 | ||||||||||
На счет первого это имел ввиду, такое:
а на счет второго, такое:
0
|
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
|
|
14.11.2015, 01:08 | 12 |
они не остаются висеть, их уже нет. Но указатель не зануленый.
В делфи есть удобная FreeAndNil вместо Free и проверочная Assigned. В сях вручную надо делать.
0
|
Супер-модератор
|
|
14.11.2015, 11:28 | 13 |
FreeAndNil точно так же доступна в С++, как и в Дельфи. Так что не надо ничего делать вручную. Только тебе это не поможет, потому что деструктор владельца не вызывает FreeAndNil, а просто вызывает деструктор всех объектов, которые у него во владении, не обнуляя указатель. И результат будет точно таким же.
0
|
14.11.2015, 11:28 | |
14.11.2015, 11:28 | |
Помогаю со студенческими работами здесь
13
мне нужно создать ползунок памяти, то есть что бы показывало сколько памяти свободно и сколько занято! Очистка Очистка Выделение памяти (CodeGear RAD Studio 2009 - C++ builder). Выделение памяти - консоль vs SDIApp Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |