用结构体实现栈出现段错误
大家好,最近在学习算法和数据结构。我尝试用结构体实现栈的时候遇到一点问题,调试了很多遍始终没有明白是哪里错了,希望大家帮我看看,谢啦~源码如下:
#include <stdio.h>
#define LEN 2
typedef struct _stack
{
int top;
int array[LEN];
} stack;
short stack_empty(stack *mystack)
{
if(mystack->top == -1)
return 1;
return 0;
}
void push(stack *mystack, int x)
{
if(mystack->top == LEN - 1) {
printf("overflow!\n");
}else {
mystack->top++;
mystack->array[mystack->top] = x;
}
}
int pop(stack *mystack)
{
if(stack_empty(mystack)) {
printf("underflow!\n");
return -1;
}else {
mystack->top--;
return mystack->array[mystack->top + 1];
}
}
int main(void)
{
stack *mystack;
int i;
mystack->top = -1;
push(mystack, 1);
return 0;
}