【各位大佬】小白我用c语言数组写栈,这里哪里错了

#include

#include
#define MAX 30
typedef struct Squestock{
int data[MAX];

int top;
}Squestock;
void init(Squestock &stock){
stock.top=-1;
}
void push(Squestock &stock,int elem){
stock.top++;
stock.data[stock.top]=elem;
}
void pop(Squestock &stock){
int elem=stock.data[stock.top];
printf("%d",elem);
printf("已经出栈");
stock.top--;
}
bool empty(Squestock &stock){
if(stock.top==-1) return true;
else false;
}
int gettop(Squestock &stock){
int elem=stock.data[stock.top];
return elem;
}

void main(){
Squestock stock;
init(stock);
push(stock,5);
push(stock,9);
push(stock,13);
int top= gettop(stock);
printf("%d \n",top);
pop(stock);
int top= gettop(stock);
printf("%d \n",top);
}

好像没申请内存空间吧,提示错误是啥?

看着没错,有问题吗?

你这样不好吧,不把bug提示告诉我们,让我们来找????

什么垃圾代码, main函数里top 两次定义
bool empty(Squestock &stock){
if(stock.top==-1) return true;
else false;
}
else 后面的false, return 去哪了?

没看大懂 没办法帮你解决了

大概看了一下。对数组存取没有边界检查,这个不能算错,但是肯定不好。return false 还少了个return,这个肯定是报错的。
然后有的地方可以小小优化一下,没发现其他更多的错误