L schrieb: > http://stanleyxu2005.blogspot.com/2008/01/potential-memory-leak-by-initializing.html > > > Interesting.. > > So with > > procedure InitRecord(out R; SizeOfRecord: Integer); > begin > FillChar(R, SizeOfRecord, #0); > end; > > Even if it has dynamic array, ansistrings, shortstrings, integers, > > I assume it is okay to initialize it this way (assumptions are bad). > > The problem: initializing records with automated types by going through > each and every field is error prone because if you expand the record > later on with more fields, you might forget to update your custom init > procedure.. > > And a question: does old borland style "object" initialize anything as > classes do? Stack based ones? heap ones? > > Interesting pondering: what would be nicee is an auto initialized record: > > procedure example; > var something: somerec autoinit; > begin > end; > > Many times I find myself initializing stuff tediously and error prone > when you do it a human way without automation.
Records and objects containing automated fields are initialized? Or do I miss something? The whole blog post is nonsense, the proper way to finalize a record before cleaning it with fillchar is calling finalize with the record. _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal