GetMem
Verze z 5. 10. 2012, 13:50, kterou vytvořil Zdeno Sekerák (diskuse | příspěvky) (Vytvorená stránka „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á...“)
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
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.