Thanks!   
      
   I thought that T^^.next was equivalent to T^.next.^next.   
      
   This helps me very much to move on and understand.   
      
      
      
      
      
      
   On Wed, 15 Dec 2004 02:32:15 GMT, "Jason Burgon"   
    wrote:   
      
   > wrote in message   
   >news:ogvur0t6iidgaf3ipeb1rnu5vje5beh6h5@4ax.com...   
   >> Hi,   
   >>   
   >> I understand the use of the ^ in pointers and how pointers work in   
   >> TP7. I recently came accross soem code where they haev for example:   
   >>   
   >> T^^.next   
   >>   
   >> I have used it in the form of T^.next when traversing a linked list.   
   >> Am just not sure how the double carets are to be used.   
   >   
   >It simply means that T is a pointer to pointer, and double-dereferencing is   
   >indeed often used by linked-list code. For example:   
   >   
   >type   
   > PDirectory = ^TDirectory;   
   > TDirectory = object   
   > Next: PDirectory;   
   > Children: PDirectory;   
   > ....;   
   > end;   
   >   
   > function TDirectory.AddChild(D: PDirectory): Boolean;   
   > var   
   > PCur: ^PDirectory;   
   > begin   
   > if D = nil then   
   > begin   
   > AddChild := False;   
   > Exit;   
   > end;   
   > PCur := @Children;   
   > while (PCur^ <> nil) and (DosCompare(D^.Name^, PCur^^.Name^) = 1) do   
   > PCur := @PCur^^.Next;   
   > D^.Next := PCur^;   
   > PCur^ := D;   
   > AddChild := True;   
   > end;   
   >   
   >Note that the intial value for PCur is set to the address of the pointer   
   >that contains the address of the first in the linked-list of Children. The   
   >use of double-dereferencing here ellimitates the need to handle the   
   >otherwise special case of dealing with the first element of the list.   
   >   
   >> Also I have seen @ being used instead of NEW,   
   >   
   >No you haven't. New allocates heap memory to an object and returns a pointer   
   >to it. @ returns the address of an existing object.   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|