[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