【发布时间】:2011-06-28 20:33:49
【问题描述】:
我正在尝试使用链接列表对堆栈进行简单的动态实现。 接下来是我的代码。代码没有错误。但是,尽管我相信我通过引用传递了结构,但函数内部所做的更改并没有反映回来。 虽然我已经能够通过使用全局结构来完成这项工作,但是我在这里缺少一个非常基本的概念,所以想知道我理解错了什么以及如何在不使用的情况下将 pop 函数中所做的更改反映在 main 中全局范围。
struct stack
{
char value;
struct stack *next;
};
void push(char a,struct stack *s1)
{
struct stack *s2;
s2=(struct stack *)malloc(sizeof(struct stack));
if(empty(s1))
{
s2->value=a;
s2->next=NULL;
s1=s2;
}
else
{
s2->value=a;
s2->next=s1;
s1=s2;
}
return;
}
int main()
{
struct stack s1;
push(c,&s1);
printf("%d",s1.value);
}
【问题讨论】: