GetMem: Porovnání verzí
Skočit na navigaci
Skočit na vyhledávání
(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á...“) |
m (1 revízia: Unit System) |
(Žádný rozdíl)
|
Verze z 5. 10. 2012, 17:49
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.