C语言函数传参有关问题,传地址

C语言函数传参问题,传地址?
如下:我想看到打印的结果,但是每次传入PreOrder(T)都是空值,要怎么修改才能实现从函数我在PreOrder()函数中打印结果乃?
typedef struct tree  
{  
ElemType data;  
struct tree * lchild;  
struct tree * rchild;  
unsigned int isOut;   //专为后序遍历设置的,0为不需要被输出,1为需要被输出  
}TreeNode,*Tree; 

void CreateTree(Tree* t);
void PreOrder(Tree t);

int main()
{
       Tree T;
       PreOrder(T);
       
}

void CreateTree( Tree* t )
{
char ch;  
Tree tre = *t;
//tre = *t;
scanf("%c",&ch);  
if ( ch == '#' )  
tre = NULL;  
else  
{  
tre = (Tree)malloc(sizeof(TreeNode));  
if ( !tre )  
{  
printf("分配内存出错") ;
return ;  
}  
tre->data = ch;  
CreateTree(&(tre->lchild));  
CreateTree(&(tre->rchild));  
}  
}

void PreOrder( Tree t )
{
//Tree tt = t;
if ( t  )  
{  
printf("%c",t->data);  
PreOrder(t->lchild);  
PreOrder(t->rchild);  
}  
}

------解决方案--------------------
前面几楼都被楼主恶劣的编程风格骗了,Tree是指针啊!声明成pTree就没歧义了
问题很明显,
pTree ptre=*t;
ptre=...malloc...;
ptre此时就跟*t毫无关系了
所以最后要加上
*t=ptre