请问这程序错在哪了
#include <stdio.h>#include<malloc.h>
typedef struct stack
{
int *base;
int top;
}S;
S initstack(S s)
{
s.base=(int*)malloc(100*sizeof(int));
s.top=0;
return s;
}
S push(S s)
{
int e;
printf("请输入要入栈的元素:\n");
scanf("%d",&e);
while(e!=-1)
{
s.base[s.top]=e;
s.top++;
scanf("%d",&e);
}
return s;
}
void printstack(S s)
{
while(s.top!=0)
{
printf("%d",s.base[s.top]);
s.top--;
}
}
int main(int argc, char *argv[])
{
S s,p,q;
p=initstack(s);
q=push(p);
printstack(q);
return 0;
}
为什么打出的数不是想要的?