FreeMem: Porovnání verzí
Skočit na navigaci
Skočit na vyhledávání
(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...“) |
|||
(Nejsou zobrazeny 2 mezilehlé verze od stejného uživatele.) | |||
Řádek 9: | Řádek 9: | ||
;Poznámky | ;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. | :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]]. | :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. | :[[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í | ;Omezení | ||
Řádek 59: | Řádek 62: | ||
[[Category:System]] | [[Category:System]] | ||
[[Category:Procedúry System]] | [[Category:Procedúry System]] | ||
+ | [[Category:Procedury a funkce pro dynamické alokace]] |
Aktuální verze z 9. 10. 2012, 21:19
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.