栈-帮我看看我的代码为什么不对
#include<stdio.h>#include<malloc.h>
typedef int elemtype;
typedef struct
{
elemtype *top;
elemtype *base;
int stacksize;
}sqstack;
//对栈的初始化
void initstack(sqstack &L)
{
L.base=(elemtype*)malloc(100*sizeof(elemtype));
L.base=L.top;
L.stacksize=100;
}
//压栈操作
void push(sqstack &L)
{
elemtype e;
printf("输入插入的值:\n");
scanf("%d",&e);
if(L.top-L.base>L.stacksize)
printf("ERROR\n");
*L.top=e;
L.top++;
}
//出栈操作
void pop(sqstack &L)
{
printf("压栈输出:\n");
if(L.base==L.top)
printf("ERROR\n");
else
{
printf("%d\n",*L.top);
L.top--;
}
}
void main()
{
sqstack A;
int m,n,i;
printf("Please choose:\n");
printf("2:压栈3:出栈\n");
initstack(A);
printf("输入操作的次数:\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf("输入进行的操作:\n");
scanf("%d",&m);
if(m>3 || m<2)
printf("ERROR\n");
else if(m==2)
push(A);
else
pop(A);
}
}