关于 seqstack 调试问题
#include"stdio.h"typedef struct
{
int data[100];
int top;
}seqstack;
seqstack *s;
int EmptyStack(seqstack *s)
{
if(s->top<=0)
return 1;
else
return 0;
}
int PushStack(seqstack *s,int a[])
{
int i;
if(s->top>=100)
{
printf("errorpush\n");
return 0;
}
else
{
for(i=0;i<50;i++)
{
s->data[s->top]=a[i];
s->top++;
}
return 1;
}
}
int PopStack(seqstack *s,int *d)
{
if(s->top<=0)
{
printf("error pop\n");
return 0;
}
else
{
*d=s->data[s->top];
s->top--;
return 1;
}
}
int main()
{
int d;
int i;
int a[100];
for(i=0;i<100;i++)
a[i]=i;
s->top=0;
if(EmptyStack(s))
return 1;
else
{
PushStack(s,a);
PopStack(s,&d);
// for(i=0;i<20;i++)
printf("%d ",d);
return 0;
}
}
编译的时候没有错误,运行的时候总是出现问题导致停止工作,可能是数组越界了 或者是指针弄错了,请问有什么方法测试出错误在哪里?