1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| #!/usr/bin/instantfpc
//program GetMemTest;
uses
SysUtils;
type
indCourt = record
nom : string;
adresse : smallInt;
nbFFB : longint;
end;
tabIndCourt = array [1..1] of indCourt;
var
CIndex : ^tabIndCourt;
CSize: Integer;
begin
CSize := sizeof(indcourt);
writeln('avant GetMem');
WriteLn('CurrHeapFree =', GetFPCHeapStatus.CurrHeapFree);
WriteLn('CurrHeapSize =', GetFPCHeapStatus.CurrHeapSize);
WriteLn('CurrHeapUsed =', GetFPCHeapStatus.CurrHeapUsed);
GetMem (CIndex, CSize);
writeln('après GetMem');
WriteLn('MemSize =', MemSize(CIndex));
WriteLn('CSize =', CSize);
WriteLn('CurrHeapFree =', GetFPCHeapStatus.CurrHeapFree);
WriteLn('CurrHeapSize =', GetFPCHeapStatus.CurrHeapSize);
WriteLn('CurrHeapUsed =', GetFPCHeapStatus.CurrHeapUsed);
CIndex^[1].Nom := 'Eric';
CIndex^[2].Nom := 'Autre';
CIndex^[3].Nom := 'Poum!!';
WriteLn(CIndex^[1].Nom);
WriteLn(CIndex^[2].Nom);
WriteLn(CIndex^[3].Nom);
FreeMem(CIndex, CSize);
writeln('après FreeMem');
WriteLn('MemSize =', MemSize(CIndex));
WriteLn('CurrHeapFree =', GetFPCHeapStatus.CurrHeapFree);
WriteLn('CurrHeapSize =', GetFPCHeapStatus.CurrHeapSize);
WriteLn('CurrHeapUsed =', GetFPCHeapStatus.CurrHeapUsed);
WriteLn(CIndex^[1].Nom);
WriteLn(CIndex^[2].Nom);
WriteLn(CIndex^[3].Nom);
end. |
Partager