Вниз
Скачать: CL | DM;

Освобождение памяти после отработки указателей   Найти похожие ветки 

 
Aquamarin   (2003-10-01 12:36) [0]

Я создаю в цикле указатели, указываю на нужную информацию и добавляю их в tlist. После отработки этой информации я делаю
tlist.clear и tlist.free
Достаточно ли этого для того, чтобы Delphi освободила память от той информации, на которую указывали указатели, или tlist очищается только от этих указателей, а память от них не очищается?
Примерно так
var
pnt: ^integer;
nlist: tlist;

...
for i := 1 to N do
begin
new(pnt);
pnt^ := random;
nlist.add(pnt);
...
end;
...
nlist.clear;
nlist.free;


 
KSergey ©   (2003-10-01 12:38) [1]

Предварительно обязательно необходимо в цикле же сделать Dispose для каждого полученного указателя


 
Palladin ©   (2003-10-01 12:42) [2]

Tip:

integer в связи с тем что он имеет тот же размер что и pointer
можно заносить и без использования указателей и выделения памяти при помощи приведения типов
var
pnt: integer;
nlist: tlist;

...
for i := 1 to N do
begin
pnt := random;
nlist.add(pointer(pnt));
...
end;
...
nlist.clear;
nlist.free;


 
KSergey ©   (2003-10-01 12:46) [3]

Люди, в отличии от меня, как всегда в задачу вдумались ;)


 
Skier ©   (2003-10-01 12:46) [4]

>Palladin © (01.10.03 12:42) [2]
nlist.clear; не обязательно :)
Вызов clear есть в TList.Destroy;


 
Palladin ©   (2003-10-01 12:49) [5]


> Skier © (01.10.03 12:46) [4]

:) да я просто скопировал



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.015 c
11-40331
Victor_
2003-02-01 09:40
2003.10.13
Проблема с таймером


3-40272
Aleksey V.P.
2003-09-22 10:34
2003.10.13
Null значения в поля таблицы


14-40595
romychk
2003-09-25 10:47
2003.10.13
windows 98SE & Pentium 4, шина 800 = глючит


6-40561
Vredina
2003-08-01 15:20
2003.10.13
UDP Message


3-40311
Максим
2003-09-22 11:50
2003.10.13
DBLookupComboboxEh




   Наверх