Name
New Procedure
Syntax
procedure New(var P:Pointer-type); procedure New(var P: ^object;Constructor);
Description
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 Variants 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.
Tips and Tricks
Unlike standard Pascal, Delphi Pascal uses a plain call to
Newto allocate a variant record. Do not supply values for the variant tags.Newalways 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, useNew.
Example
type
PEmployee = ^TEmployee;
TEmployee = record
Name: string;
TIN: string[9];
Salary: Currency;
end;
var
E: PEmployee;
begin
New(E); try E.Salary := 0; // Initialize to zero until a proper value ...Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access