[fpc-pascal] does Advanced Record constructor automatically zero all the memory space of that record?
Dennis Poon
dennis at avidsoft.com.hk
Tue Sep 24 16:40:03 CEST 2013
Sven Barth wrote:
>> 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
>
Thanks for your help.
Are the above info. available anywhere in FPC's web site that I
overlooked? If not, maybe it should be added to its wiki.
Dennis
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20130924/a3b83176/attachment.html>
More information about the fpc-pascal
mailing list