Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.31;
Скачать: CL | DM;

Вниз

Указатели на уничтоженные объекты   Найти похожие ветки 

 
Константинов ©   (2004-10-15 21:28) [0]

Примерно такая конструкция:

PDataRec = ^TDataRec
TDataRec = record
 ObjectA : TObject;
 ObgectB : TObject;
 ObjectC : TObject;
end;
var
List : TList;
DR : PDataRec;
A,B,C : TObject;
begin
GetMem(DR,SizeOF(TDataRec));
A := TObject.Create;
B := TObject.Create;
C := TObject.Create;
DR.ObjectA := A;
DR.ObjectB := B;
DR.ObjectC := C;
List.Add(DR);
...
List.Add(DR);
... короче несколько элементов списка ссылаются на один из объектов

A.Free; !!!

в списке List остался указатель на уничтоженный объект
и этот указатель <> nil

Delphi запросто читает данные из ячеек по указанному адресу, хотя
объект уже не существует.

Как с этим бороться?
Единственное, что приходит на ум, сканировать List на наличие указателя на объект А
перед его уничтожением... и присваивать ему nil

А если количество элементов списка несколько сотен тысяч!?
будут тормоза еще те...

Посоветуйте, что-нибудь поинтереснее...


 
panov ©   (2004-10-15 21:31) [1]

Создать наследника TList и с объектами работать как с элементами TList


 
Мирон ©   (2004-10-16 10:48) [2]

А если в лоб:

A.Free;
A := nil;


 
begin...end ©   (2004-10-16 10:59) [3]


> [2] Мирон ©   (16.10.04 10:48)

FreeAndNil()


 
Мирон ©   (2004-10-16 11:13) [4]


> Мирон ©   (16.10.04 10:48) [2][Ответить]


> begin...end ©   (16.10.04 10:59) [3


Сорри, автору это не поможет



Страницы: 1 вся ветка

Текущий архив: 2004.10.31;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.053 c
1-1098182137
Scraber
2004-10-19 14:35
2004.10.31
Обычная кпока - контрол


1-1097652492
cvg
2004-10-13 11:28
2004.10.31
Как сделать ширину окна проги равной ширине экрана?


1-1097787492
Loki3D
2004-10-15 00:58
2004.10.31
конвертация в bmp из GIF и TIFF


4-1096091662
Zombik
2004-09-25 09:54
2004.10.31
Как закрыть окно с содержимым CD ?


1-1098207334
td
2004-10-19 21:35
2004.10.31
прерывание выполнения большой функции