![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Автоматическое освобождение структуры из памяти [D6, Win2k, WinXP]
Progh © (2005-01-24 12:52:00)Структура данных освобождается из памяти авоматически или же ее нужно освобождать вручную, например :
type
TStructure = record
S1: String;
i1: Integer;
m: array[0..255] of String;
end;
procedure MyProc;
var
c: TStructure;
i: Integer;
begin
c.s1 := 'aaa';
c.i1 := 200;
for i := 0 to 255 do
c.m[i] := IntToStr(i);
end;
procedure MyProc2;
var
i: Integer;
begin
for i := 0 to 1000 do
MyProc;
end;
begin
MyProc2;
end;
В данном примере программа возрастает на несколько киллобайт, как освобождать структуры после себя ?
Digitman (2005-01-24 13:19:00) [1]
> после ее нажатия программа возрастает на 4 кб. Причем данное
> возрастание размера происходит только после первого нажатия
> на кнопку
это совершенно нормальное явление
Digitman (2005-01-24 13:02:00) [2]
> В данном примере программа возрастает на несколько киллобайт,
> как освобождать структуры после себя ?
в данном примере никакого явного освобождения памяти не требуется
Progh (2005-01-24 12:59:00) [3]Ну назначил я данные действия при нажатии на кнопку, и после ее нажатия программа возрастает на 4 кб. Причем данное возрастание размера происходит только после первого нажатия на кнопку.
Александр Иванов (2005-01-24 12:56:00) [4]Если ты по поводу переменной var
c: TStructure, она статическая, размещается в стеке и перестает существовать после выхода из процедуры MyProc. А насчет возрастания программы уточни.