首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-02-17 
麻烦看一下,一个判断栈空的程序结果不对typedef struct SNode {//结构类型定义Elemtype datestruct SNode

麻烦看一下,一个判断栈空的程序结果不对
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;
}

热点排行