On Sun, Nov 29, 2009 at 1:59 PM, Jonas Maebe <span dir="ltr"><<a href="mailto:jonas.maebe@elis.ugent.be" target="_blank">jonas.maebe@elis.ugent.be</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

<div><br>
On 29 Nov 2009, at 19:20, Mehmet Erol Sanliturk wrote:<br>
<br>
> My experience with Windows XP Professional is that it is NOT zeroing the memory . I know this from actual Delphi ( and also Free Pascal ) compiled program executions . Due to this I am explicitly initializing all of the local simple variables , elements of records .<br>


<br>
</div>The discussion was about global variables, not about local variables. Local variables are indeed not initialised (not in FPC nor in Delphi/TP).<br></blockquote><div> </div></div>Yes, as Jonas said we were discussing global variables which are indeed initialized to 0 (according to what Jonas has said). This is a documented behaviour. As an aside, this behavior also extends to class fields upon instantiation.<br>
<br>Conversely, local variables are not initialized. This is because locals are references to memory on the stack and are reused as offsets from the stack pointer register. This mean that you must initialize local variables before using them or you may encounter unexpected results.<br>
<br>As far as I can recall this is the way things have always been.<br>