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