Форум: "Основная";
Текущий архив: 2003.10.13;
Скачать: [xml.tar.bz2];
ВнизОсвобождение памяти после отработки указателей Найти похожие ветки
← →
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 вся ветка
Форум: "Основная";
Текущий архив: 2003.10.13;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c