Otevřít hlavní menu

Změny

GetMem

Přidáno 1 315 bajtů, 5. 10. 2012, 13:50
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]]

:[[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]]