Форум: "Основная";
Текущий архив: 2003.04.14;
Скачать: [xml.tar.bz2];
ВнизЯвляется ли корректным такое освобождение памяти Найти похожие ветки
← →
Андрусь (2003-04-03 10:59) [0]Привет всем!Есть такой код:
i:=0;
While i<AList.Count Do
With PRMyRec(AList[i])^ Do
If DisposeMyRec(MyRecItem) Then Begin
Dispose(AList[i]);
AList.Delete(i);
End
Else inc(i);
Является ли корректным освобождение памяти таким образом,когда распакованный указатель исчо не покинул область видимости.
← →
Skier (2003-04-03 11:11) [1]>Андрусь
Является, т.к. после Dispose(AList[i]) ты видимо (?)
с AList[i] уже ничего не делаешь.
← →
Palladin (2003-04-03 11:17) [2]если компилируется и работает, то корректно, а вот полностью ли память освобождается сказать нельзя, ибо не приведены описания структур....
← →
Андрусь (2003-04-03 11:32) [3]>Skier
Да не делаю.
Тогда исчо вопрос:как Dispose просекает размер освобождаемой пямяти,ведь в TList - нетипизированные указатели. Не надоли дописать приведение типов при вызове Dispose:
Dispose(PRMyRec(AList[i]))?
← →
Skier (2003-04-03 11:39) [4]>Андрусь
> Не надоли дописать приведение типов при вызове Dispose:
Не надо.
Менеджер памяти Delphi "следит" за тем сколько он
выделил памяти под структуру.
Но самое главное здесь то что Dispose должна работать
в "связке" с New.
И ещё : про Менеджер памяти Delphi была отличная статья
Андрея Мистика в RSDN-e за 02.02
← →
Андрусь (2003-04-03 11:56) [5]>Skier
А в инете её нет?
← →
Skier (2003-04-03 12:00) [6]www.rsdn.ru :)
← →
Андрусь (2003-04-03 12:19) [7]>Skier
В том-то и дела,что там нет - только анонс.
← →
Skier (2003-04-03 12:25) [8]Эх, молодёжжжжжжжж...:)
http://www.rsdn.ru/
дальше так :
В правом окне открываем узелки дерева (последовательно)
- RSDN Magazine - 2002 - #2 - Менеджер памяти Delphi
В левом окне появляется статья
Удачи ! :))
← →
kravchuk (2003-04-03 12:32) [9]http://www.rsdn.ru/article/default.asp?Delphi/memmanager.xml
← →
Alexander1966 (2003-04-03 13:06) [10]Обычно делают так:
new(myRecord);
Alist.Add(myRecord);
................
................
myRecord:=AList[i];
Dispose(myRecord);
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.04.14;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c