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

Вниз

TList и new и dispose и ограничение по расмеру   Найти похожие ветки 

 
DimonNew   (2005-03-04 14:58) [0]

Привет, подскажите пожалуста.
Я создаю список указателей на структуру:
type
 PStruct =^TSrtuct;
var
 MyStruct : PStruct;
begin
 new(MyStruct);
 ...
 List.Add(MyStruct);
end;


Имеет ли ограниченя выделяемая память?
И как правильно очистить List, нужно ли использовать Dispose или достаточно List.Free?


 
Reindeer Moss Eater ©   (2005-03-04 15:01) [1]

Имеет ли ограниченя выделяемая память?
Конечно имеет.

И как правильно очистить List, нужно ли использовать Dispose или достаточно List.Free?

Очистить лист - clear.
Освободить память после New - Dispose.


 
begin...end ©   (2005-03-04 15:06) [2]

> DimonNew   (04.03.05 14:58)

> Имеет ли ограниченя выделяемая память?

Естественно, имеет. Ведь если свободная память закончится - ГДЕ же размещать новые данные?

> И как правильно очистить List, нужно ли использовать
> Dispose или достаточно List.Free?

Если речь идёт об экземпляре класса TList, то для очистки самого TList (который является хранилищем указателей) достаточно вызвать List.Free (а если не требуется уничтожение самого объекта List - то достаточно и List.Clear). А вот об освобождении той памяти, на которые эти указатели указывали, т.е. той, которую Вы сами выделяли с помощью New, придётся позаботиться Вам. С помощью Dispose. Т.е. нужно будет вначале для каждого элемента TList (т.е. указателя) вызвать Dispose: Dispose(PStruct(List.Items[...])), а потом уже уничтожить сам список: List.Free.


 
DimonNew   (2005-03-04 15:19) [3]

Спасибо за помощь, вот это Dispose(PStruct(List.Items[...])) меня и интересовало.



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

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

Наверх




Память: 0.47 MB
Время: 0.038 c
14-1109438464
hacker
2005-02-26 20:21
2005.03.20
Как заменить компоненты в Win


3-1108642779
Max Zyuzin
2005-02-17 15:19
2005.03.20
Обращаемся к *.dbf файлам через ADO


3-1108588340
hexware
2005-02-17 00:12
2005.03.20
Не знаю, как сделать в Access фильтр по данным через запрос...


3-1108621132
Denmin
2005-02-17 09:18
2005.03.20
Как запретить Append в таблице?


4-1107546201
XAN
2005-02-04 22:43
2005.03.20
kak cdelat tak ctobi ikonka proqrammi bila v systray