在家写了一个栈的基本操作,编译连接都没有问题,可是一调试就自动关闭,好几次写程序都这样,望大神指教一下
程序附上:#include<stdlib.h>
#include<stdio.h>
#define ERROR 0
#define OK 1
#define STACK_INIT_SIZE 8;
#define STACKINCREMENT 2;
typedef struct{
int *base;
int *top;
int stacksize;
}SqStack;
int Initstack(SqStack &s){
s.base=(int *)malloc(8*sizeof(int));
if(!s.base) return 0;
s.base=s.top;
s.stacksize=STACK_INIT_SIZE;
return 1;
}
int Push(SqStack &s,int e){
if(s.top-s.base>=s.stacksize)
{
s.base=(int*)realloc(s.base,sizeof(int)*4);
if(!s.base)
return 0;
s.top=s.base+s.stacksize;
s.stacksize+=STACKINCREMENT;
}
*s.top++=e;
return e;
return 1;
}
int StackEmpty(SqStack &s){
if(s.base==s.top)
return 1;
else
return 0;
}
int Pop(SqStack &s,int &e){
if(s.base==s.top)
return ERROR;
e=*--s.top;
return 1;
}
SqStack main(int N){
SqStack s;
int e;
Initstack(s);
scanf("%d",N);
while(N){
Push(s,N % 8);
N=N/8;
}
while(!StackEmpty(s)){
Pop(s,e);
printf("%d",e);
}
return s;
}