Přidáno 1 315 bajtů,
5. 10. 2012, 13:50 Alokuje blok paměti určené velikosti.
;Deklarace
procedure GetMem(var P: Pointer; Size: Word);
;Režim
:Windows, Reálný, Chráněný
;Poznámky
:P je proměnná jakéhokoli pointrového typu. Size je výraz udávající v bajtech velikost dynamické proměnné, která se má alokovat. Na nově vytvořenou proměnnou se lze odkazovat konstrukcí P^.
:Pokud není v haldě ([[heap]]) pro alokaci nové proměnné dostatek volného místa, dojde k běhové (run-time) chybě.
;Omezení
:Naráz lze v haldě bezpečně alokovat blok o maximální velikosti 65.528 bajtů (64K-$8).
;Viz také
:[[Dispose]]
:[[FreeMem]]
:[[Mark]]
:[[New]]
:[[Release]]
Vzorový příklad
{FreeMem.PAS}
{Vzorový příklad pro FreeMem, GetMem a MaxAvail.}
{ Pro Windows: }
{ uses WinCrt; }
type
TFriendRec = record
Name: string[30];
Age : Byte;
end;
var
p: pointer;
begin
if MaxAvail < SizeOf(TFriendRec) then
Writeln('Málo paměti')
else
begin
{ Přiděluje paměť v haldě }
GetMem(p, SizeOf(TFriendRec));
{ ...}
{ ...Používá paměť... }
{ ...}
{ Když je hotov, pak ji uvolní }
FreeMem(p, SizeOf(TFriendRec));
end;
end.
[[Category:System]]
[[Category:Procedúry System]]