GetMem

Z Delphi & Pascal (česká wiki)
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á...“)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)
Skočit na navigaci Skočit na vyhledávání

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.