Otevřít hlavní menu

New

Verze z 5. 10. 2012, 17:49, kterou vytvořil Zdeno Sekerák (diskuse | příspěvky) (1 revízia: Unit System)

Vytvoří novou dynamickou proměnnou a vloží její adresu do proměnné typu ukazatel.

Deklarace
procedure New(var P: Pointer [ , Init: Constructor ]);
Režim
Windows, Reálný, Chráněný
Poznámky
Deklarace New byla rozšířena také pro alokaci objektu na haldě, pokud jako druhý parametr předáte volání konstruktoru objektu, jako např.:
New(T, Init(360, 174));
Další rozšíření umožňuje použití procedury New jako funkce, která alokuje a vrátí dynamickou proměnnou určeného typu.
Jestliže volání je ve formě New(T), T může být libovolného ukazatelového typu.
Jestliže volání je ve formě New(T, Init), T musí být ukazatelem na objektový typ a Init musí odkazovat na konstruktor tohoto objektového typu. V obou případech je typem výsledku funkce T.


Viz také
Dispose
FreeMem
GetMem
Release


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.