[fpc-pascal] Does SetLength clear its elements to zeros?
Jonas Maebe
jonas.maebe at elis.ugent.be
Fri Dec 11 11:42:18 CET 2015
Dennis wrote on Fri, 11 Dec 2015:
> I just tested, SetLength a string does not zero its elements (the chars).
>
> However, SetLength a dynamic array seems to zero its elements.
Dynamic arrays are indeed zeroed when changing the length, while
strings are not. For dynamic arrays, it is necessary anyway in case it
has reference counted elements. Maybe for consistency, it's always done.
Additionally, changing the length of the string without afterwards
overwriting the data between the previous and new last character seems
something that would happen very seldom (why did you increase the
length if you didn't need to write all characters -- any operation
with the string, such as writing or concatenating it, will use those
characters anyway because the length indicates they're part of the
string).
The above are mostly guesses though.
Jonas
More information about the fpc-pascal
mailing list