[fpc-pascal] Initializing Records Automatically
L
L at z505.com
Mon Mar 24 12:20:03 CET 2008
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.
More information about the fpc-pascal
mailing list