[fpc-pascal] does Advanced Record constructor automatically zero all the memory space of that record?
Sven Barth
pascaldragon at googlemail.com
Tue Sep 24 13:21:08 CEST 2013
> does Advanced Record constructor automatically zero all the memory
> space of that record?
No, it does not. Neither in Delphi nor in FPC.
Am 24.09.2013 12:36, schrieb Dennis Poon:
> if not, is there a clean and easy way to initialize the entire record
> memory space to zeros e.g.
>
> constructor TMyRecord.Create(TheValue : Integer);
> begin
> FillChar(self, sizeof(Self), 0);
> Value := TheVal;
> end;
You can use either FillChar as you did or use "Self := Default(TTest);"
(default is a compiler intrinsics that returns a 0 value of the type you
passed in, e.g. Nil for classes, '' for strings, 0 for ordinals and for
records all fields are set to 0)
> Is there a Self variable for advanced record methods/constructors ?
Yes.
> By the way, is there an ultimate inherited constructor "Create" for
> all advanced record types?
No.
Regards,
Sven
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20130924/9e86ca17/attachment.html>
More information about the fpc-pascal
mailing list