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

Вниз

Нужно ли явно освобождать строки и дин.массивы в структуре?   Найти похожие ветки 

 
Ruzzz   (2009-08-31 03:34) [0]

Есть структура, для которой делаю New и Dispose, если среди полей структуры есть строки и динамические массивы, то нужно ли перед Dispose вызывать для таких полей SetLength(0)? Думал что нужно, но вот поэкспериментировал со строками, и оказывается что если не вызывать SetLength(0) то утечек памяти нет. Да и нашел в IniFiles в классе TStringHash в методах Remove и Clear освобождается структура THashItem имеющая поле-строку, и там НЕ освобождают явно эту строку перед Dispose. То есть компилятор следит если в структуре есть строки и дин. массивы, то при освобождении (Dispose) структуры он автоматически освобождает и эти строки? Не знаю почему, но для классов я и не думал никогда освобождать строки в Destroy :), но вот для структур почему-то всегда думал что освобождать нужно :)


 
MBo ©   (2009-08-31 05:33) [1]

Note:
It is preferable to use the New and Dispose procedures rather than GetMem and FreeMem. When using New and Dispose , there is no need to explicitly call Finalize .

Т.е. Dispose - умная процедура, сама финализирует динмассивы и строки


 
oxffff ©   (2009-08-31 08:45) [2]


> Ruzzz   (31.08.09 03:34)  


Dispose - параметризованный финализатор.


 
oxffff ©   (2009-08-31 08:45) [3]


> oxffff ©   (31.08.09 08:45) [2]


+Deallocator



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

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

Наверх




Память: 0.47 MB
Время: 0.008 c
15-1292880591
Юрий
2010-12-21 00:29
2011.04.03
С днем рождения ! 21 декабря 2010 вторник


15-1292493434
Kerk
2010-12-16 12:57
2011.04.03
Полное дорожное видео трассы «Москва - Владивосток»


15-1292854207
Делфиец
2010-12-20 17:10
2011.04.03
Является ли "свободное ПО" свободнораспостряняемым?


15-1292487281
Jeer
2010-12-16 11:14
2011.04.03
Пропустил ?


6-1235830494
AlkonaVT
2009-02-28 17:14
2011.04.03
Глюк кодировки FTPServer а в FPiette.