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

Вниз

Указатели на записи   Найти похожие ветки 

 
Dvorez   (2002-12-23 05:08) [0]

Господа, вопрос такой.
Существует указатель на запись следующего вида:

type
PListObject = ^TListObject;
TListObject = record
kod:string[14];
nkod:string[100];
end;


Соответственно переменная этого типа и переменная типа TList:

var
ListObject:PListObject;
ListUs:TList;


В цикле создаем динамическую переменные и вставляем их в лист:
for i:=0 to 20 do
begin
new(ListObject);
ListObject^.kod:="1";
ListObject^.nkod:="2";
ListUs.Insert(i,ListObject);
end;

Ворпрос:
Нужно ли перед завершением работы программы уничтожать эти динамические переменные (dispose(...))? И почему?


 
MBo ©   (2002-12-23 06:35) [1]

Да, нужно - сам выделяешь память, сам и освобождай.


 
Alex Konshin   (2002-12-23 06:43) [2]

Нужно.
TList не пытается как-нибудь понять указатели, которые ему дают.
Соответственно и не пытается их уничтожать (а откуда ему знать, что это?).
Я не знаю, что у тебя за задача, но на мой взгляд динамический массив в данной ситуации более предпочтительный, так как будет меньше обращений к менеджеру памяти и вопрос с уничтожением не стоит. А если ты еще и заранее знаешь размер массива, то лучше просто выделить память одним куском.

Как еще один вариант могу предложить свои дин.масивы объектов, но не уверен, что ты сможешь оценить его преимущества-недостатки, т.к. у тебя возникают вопросы в более простых ситуациях.
http://home.earthlink.net/~akonshin/index.htm



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

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

Наверх




Память: 0.47 MB
Время: 0.02 c
1-15101
reticon
2002-12-20 13:20
2003.01.06
сравнение двух нетипизированных файлов


14-15250
Axis_of_Evil
2002-12-16 11:17
2003.01.06
А есть ли среди местных геймеры ?


8-15162
Неопытный
2002-09-16 19:09
2003.01.06
Функция по выводу картинки без нужного цвета


7-15331
zalviko
2002-10-27 14:44
2003.01.06
Вопрос


1-15138
hp1100
2002-12-20 20:08
2003.01.06
Загрузка ассоциированных файлов в уже запущенную программу