麻烦看一下,一个判断栈空的程序结果不对解决思路

麻烦看一下,一个判断栈空的程序结果不对
typedef struct SNode { //结构类型定义
  Elemtype date;
struct SNode *next;
}LinkStack;


int Stack_Init(LinkStack *s) //初始化
{ s=NULL;
return 1;
}

void StackEmpty(LinkStack *&s) //判断栈空
{
if(s=NULL) cout<<"栈空"<<endl;
else cout<<"栈不空"<<endl;
}


void main()
{ LinkStack *s2; Stack_Init(s2);
  StackEmpty(s2); }
结果应该是“栈空”,但显示的是栈不空。这是为什么?

------解决方案--------------------
if(s=NULL) cout<<"栈空"<<endl;把=号改成==号就行了。
------解决方案--------------------
void main()
{ LinkStack *s2; Stack_Init(s2);
StackEmpty(s2); }

s2没有初始化,在debug模式下其值为0xcccccccc,在release下其值随即。
楼主只要给其赋初值就行了s2 = NULL;
------解决方案--------------------
int Stack_Init(LinkStack **s) //初始化
{ *s=NULL;
return 1;
}