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