C语言数据结构问题,下面的程序错在哪里?运行的时候出错了?但哪里错了???

2024-12-30 16:56:46
推荐回答(2个)
回答1:

#include
#include
void initstack();
void push(int e);
void pop();
struct sqstack
{
int *base;
int *top;
int stacksize;
}s;
int main()
{
int a;
initstack();
for(int i=0;i<10;i++)
{
scanf("%d",&a);
push(a);
}
for(i=0;i<10;i++)
{
pop();
}
return 0;
}
void initstack()
{s.stacksize=10;
s.base=(int*)malloc(10* sizeof(int));

s.base=s.top; //此处改为s.top=s.base
}
void push(int e)
{
*s.top=e;
s.top++;
}
void pop()
{s.top--;
printf("%d",*s.top);

}

回答2:

initstack时, s.top = s.base;