On Fri, 16 Dec 2011, dhkblas...@zeelandnet.nl wrote:


On implementing a linked list I hit to some unexpected (doesn't mean incorrect 
though) behaviour.

 

  ptest = ^test;
  test = record
    p: pointer;
  end;

 

  new(mytest);

 

When I allocate "mytest" the pointer variable "p" is initialized as $ffffffff 
instead of nil as I did suspect. In my code though I am
relying on the fact that new pointers are indeed nil so I can allocate them 
accordingly. How can I force and rely on the fact that
p is always nil? What is the correct procedure here?

Newly allocated memory is never zeroed out. You must do this manually with 
FillChar or FillWord.
This is only done automatically for class instances.

I will add a note to the docs.

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

Reply via email to