Přidáno 1 646 bajtů,
5. 10. 2012, 13:48 Uvolní dynamickou proměnnou dané velikosti.
;Deklarace
procedure FreeMem(var P: Pointer; Size: Word);
;Režim
:Windows, Reálný, Chráněný
;Poznámky
:P je proměnná libovolného pointrového typu, která předtím byla přiřazena procedurou [[GetMem]] nebo jí byla přiřazena nějaká smysluplná hodnota přiřazovacím příkazem.
:Size je výraz, který určuje v bajtech velikost uvolňované dynamické proměnné; musí to být přesně tentýž počet bajtů, který byl předtím pro tuto proměnnou alokován procedurou [[GetMem]].
:[[FreeMem]] zruší proměnnou odkazovanou parametrem P a vrátí její paměťový prostor do [[halda|haldy]]. Jestliže P neukazuje do paměťové oblasti v haldě, dojde k běhové chybě. Po volání [[FreeMem ]] se hodnota P stane nedefinovanou a následné odkazy P^ budou znamenat chybu.
;Omezení
:Neměla by být používána s [[Mark]] ani [[Release]].
;Viz také
:[[Dispose]]
:[[GetMem]]
:[[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]]