Micha Nelissen wrote:
Anthony Walter wrote:
Having said all that, Jonas, what is the actual implemented behaviour
of FPC? Does it 0 initialize heap memory at startup or not? If not,
what is the justification for not doing so when this has been a long
established behaviour of Delphi?

It's not the compiler or RTL that zeroes the memory, but the OS. Therefore, it cannot be guaranteed by the fpc documentation (except if it would contain code to explicitly initialise that memory).

Most OSes (Windows, Linux, BSDs, ...) do zero global memory though, to prevent leakage of (potentially security sensitive) information from one process to another.

Micha


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 .

To rely on behaviors of operating systems or compilers in that subject may produce very unreliable programs because these tools ( compilers and operating systems ) may be modified in unexpected ways . Therefore best action is to initialize the variables explicitly which is the most reliable way to maintain robustness of developed programs .

Thank you very much .

Mehmet Erol Sanliturk




_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to