请问一个形参传值的有关问题

请教一个形参传值的问题
void Search(node* head,node *mid)
{
node *temp=head;
node *p=head;
while (p->next!=NULL&&p->next->next!=NULL)
{
p=p->next->next;
temp=temp->next;
mid=temp;
}
}

void main()
{
node* head=Create();
GetLength(head);
PrintNode(head);
node* mid;
Search(head,mid);
printf("\n %d",mid->data);

}

我想通过mid获取到Search()中的mid值,但printf(……)的时候总是访问越界。
debug发现mid在Search()函数体中值一直是正确的,就是一出该函数就没值了。
声明:mian()中前面的代码绝对正确。
C++ 算方 链表

------解决方案--------------------
函数中对mid的修改是带不出来的

要么用指针的引用,要么用指针的指针