Otevřít hlavní menu

Dispose

Verze z 5. 10. 2012, 13:44, kterou vytvořil Zdeno Sekerák (diskuse | příspěvky) (Vytvorená stránka „Vrací paměť alokovanou pro dynamickou proměnnou. ;Deklarace procedure Dispose(var P: Pointer [ , Destructor ]); ;Režim :Windows, Reálný, Chráněný ;Poznámk...“)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)

Vrací paměť alokovanou pro dynamickou proměnnou.

Deklarace
procedure Dispose(var P: Pointer [ , Destructor ]);
Režim
Windows, Reálný, Chráněný
Poznámky
Neměla by se používat s Mark ani Release.
Syntaxe Dispose byla rozšířena, takže může také uvolnit z heapu alokovaný objekt, pokud uvedete destruktor objektu jako parametr, např.:
Dispose(P, Done);
Po volání Dispose se hodnota P stane nedefinovanou a následné odkazy P^ budou znamenat chybu.


Omezení
Pokud P neukazuje do paměťové oblasti v haldě, objeví se chyba při běhu programu (run-time error).


Viz také
FreeMem
GetMem
New


Vzorový příklad

{Dispose.PAS}
{Vzorový příklad pro procedury New a Dispose.}
type
  Str18 = string[18];
var
  P: ^Str18;
begin
  New(P);
  P^ := 'Teď ji uvidíte...';
  Dispose(P);           { Teď ne... }
end.