<p>Am 26.06.2016 12:10 schrieb "Jürgen Hestermann" <<a href="mailto:juergen.hestermann@gmx.de">juergen.hestermann@gmx.de</a>>:<br>
><br>
> Am 2016-06-26 um 01:19 schrieb Karoly Balogh (Charlie/SGR):<br>
> > No. Local variables are not initialized by default. Managed type or not,<br>
> > doesn't make a difference.<br>
><br>
> This is not true.<br>
> Local variables of managed types are of course initialized!<br>
> If you declare<br>
><br>
> var S : String;<br>
><br>
> then it is of course initialized to nil.<br>
> Otherwise the (random) pointer stored in S would be used<br>
> to change the reference counter when you assign:<br>
><br>
> S := '';<br>
><br>
> The only exception (at least since FPC 3) is the function result<br>
> which is totally unexpected.<br>
> Why such an exception?<br>
><br>
> And it is not even documented (at least not within FPC)!<br>
> Which I find a bit strange because it is very important to know.<br>
> Omitting such information in the documentation is not good.<br>
> Here<br>
> <a href="http://www.freepascal.org/docs-html/ref/refsu15.html">http://www.freepascal.org/docs-html/ref/refsu15.html</a><br>
> it says:<br>
><br>
> "When declaring a variable of a dynamic array type, the initial length of the array is zero."<br>
><br>
> but no word about that this is not true when this array is a the result of a function.</p>
<p>But also no word that it is true either, cause you're not declaring a variable for the Result.</p>
<p>Regards,<br>
Sven</p>