Pointer troubles

Hi everyone,
I'm trying to implement a binary search tree but im having troubles with my Add function. The add function is supposed to take a pointer to a variable and add it to the tree.

To begin with, the add function is called from Insert, which sends the new variable to be added and a pointer to the root node, which is initially null. Inside the Add function it checks to see if the passed pointer is null, if it is then it creates a new pointer to a node with the passed value in it, and then assigns the new pointer to the passed pointer.

The first time this function is called should mean that the root pointer now points to the newly created node. However when i try and traverse the tree it root pointer is null.

Can someone please give me some direction, any help will be greatly appreciated.
Thanks

From what I have read I thought that the call to a function did not have to know that the function was actually going to pass a reference variable. The refernce to the char pointer seems to be working, but not the reference to the node pointer. Shouldnt they behave exactly the same???