New Procedure
The New
procedure allocates a new variable of
pointer or old-style object
type.
The most common case is setting a pointer variable to point to
dynamically allocated memory. New
calls
GetMem
to allocate the memory, and then it calls
Initialize
to initialize the strings, dynamic
arrays, interfaces, or Variant
s in the new value.
Note that other fields, such as scalar values, static arrays, and
short strings, are not
initialized.
You can also create an old style object
by calling
New
. The first parameter is a pointer variable,
and the optional second argument is the constructor name and its
optional arguments. Delphi calls the constructor, allocates the
memory for the object, initializes the memory to all zeros, and sets
the pointer to refer to the newly allocated memory.
New
is not a real procedure.
Unlike standard Pascal, Delphi Pascal uses a plain call to
New
to allocate a variant record. Do not supply
values for the variant tags. New
always allocates
the maximum amount of memory needed for all combinations of variant
tags.
If you need to allocate a variably sized array, use
GetMem
. If you need to allocate a single record or
a fixed-size array, use New
.