Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Нет Access Violation после двух Free ! :)


Danila ©   (2008-02-15 21:10:00) 

Привет всем!
объясните мне кто-нибудь как такое может быть: в начале объект создается, в конце освобождается с AV (AV происходит, когда вызывается метод Free для объекта). Если же в коде до этого (в другом месте, не там где этот метод Free вызывается) я вызываю тоже Free, то AV не случается. По сути, как я понимаю, вызывается два раза метод Free для одного объекта и без AV, а наоборот как лекарство от AV. Как это объяснить? Заранее спасибо!


Ins   (2008-02-15 23:37:00) [1]


> Кто-ниб. может что-нибудь по сути сказать или вам больше
> делать нефиг


Очень здорово Palladin в первом посте сказал, и кстати - по сути. Только над этими словами нужно чуточку подумать и сделать выводы :)


antonn   (2008-02-15 23:17:00) [2]

или там какой нибудь with затесался :)


Германн   (2008-02-15 21:49:00) [3]


> Danila   (15.02.08 21:10)

Нет бы сразу привести проблемные строки кода, которые дают AV. Давно бы уже помогли. А так без телепатии не обойтись. Например проблемный вызов Free производится в обработчике события этого объекта.


Danila   (2008-02-15 21:36:00) [4]

Это (где делаешь Obj.Free; делай еще и Obj:=nil и все будет Ок) по сути ничего не меняет (я имею ввиду в данном случае)


Palladin   (2008-02-15 21:33:00) [5]


> [7] Danila   (15.02.08 21:29)

слабо... и даже очень... бо что бы тебе чего то объяснить доходчиво нужно тут либо тебя послать на уроки Юрия Зотова в лицей, либо рассказать в твухтомнике основы взятия и освобождения памяти, во что та или иная операция в коде может приводить состояние памяти и оперции с ней, а так же что же может произойти если провести операцию с памятью освобожденной, но еще не занятой чем то другим...


{RASkov}   (2008-02-15 21:31:00) [6]

> [5] Danila   (15.02.08 21:25)

делать нефиг :)
Ты везде, где делаешь Obj.Free; делай еще и Obj:=nil и все будет Ок
:)
т.е.:
Obj.Free;
Obj:=nil;


Danila   (2008-02-15 21:29:00) [7]

а без как бы слабо?


Palladin   (2008-02-15 21:27:00) [8]

так как бы тебе по сути и сказали... в самом первом посте :)


Danila   (2008-02-15 21:25:00) [9]

Кто-ниб. может что-нибудь по сути сказать или вам больше делать нефиг


Palladin   (2008-02-15 21:18:00) [10]

и мне еще повезло что оно еще выскочило... могло быть и хуже... полный ребут... :)


{RASkov}   (2008-02-15 21:16:00) [11]

> а я два метра по встречке вчера проехал ! :)

Повезло, что AV с дубинкой не выскочило :)


Palladin   (2008-02-15 21:16:00) [12]

на третьем то как раз и выскочило! :)))


Palladin   (2008-02-15 21:11:00) [13]


> Нет Access Violation после двух Free ! :)

а я два метра по встречке вчера проехал ! :)


Наверх

Титульная страница Поиск, карта сайта Написать письмо