为什么DevC++在调试程序时,会出现程序段访问违例错误?

javase7 2009-11-19 08:49:38
//以下程序是我写的一个关于计算仅含有析取(用+表示)合取(用*表示)和非(用-表示)的表达式的算法
//但在DevC++在调试程序时,会出现程序段访问违例错误? 为什么??哪里错了??
#include <stdlib.h>
#include <stdio.h>
#define ssize 100
#define sinc 10
typedef struct
{ char *base;
char *top;
int size;
}sq;


initstack(sq *s)
{
s->base = (char * )malloc(sinc*sizeof(char));
s->top=s->base;
s->size=ssize;
}

gettop(sq *s,char *e) //返回栈顶元素
{if(s->top==s->base)
printf("kong");
*e=*(s->top-1);
}

char duqu(sq *s) //读取栈顶元素
{ char p=*(s->top-1);
return p;
}


push(sq *s,char e) //压入栈
{
if(s->top-s->base>=s->size)
{s->base=(char *)malloc(sinc*sizeof(char));
if(!s->base)exit(1);
s->top=s->base+sinc;
s->size=(s->size)+sinc;
}
*s->top++=e;
}


out(sq *s)
{s->top--;


} //出栈
int iscope(char s) //判断是否为操作符
{if(s=='+'||s=='*'||s=='-')
return 1;
else return 0;
}
int isnum(char s) // 判断是否为操作数
{if(s=='1'||s=='0')
return 1;
else return 0;
}
char youxian(char a,char b) //判断优先级
{if(a=='('&&b==')') return '[';
else if(a=='(') return '<' ;
else if(b==')')return '>' ;
else return '=';
if (a=='#') return '<';

}
//计算析取式 + 非-

//计算和取式 *


char jisuan(char a,char b ,char c) //计算表达式
{switch(c)
{case '*':if(a=='1'&&b=='1')return 1;else return 0;break;
case '+':if(a=='0'&b=='0') return 0;else return 1;break;
case '-':if(a=='1')return 0;else return 1;break;
}
}
main()
{ sq num ;
sq cope;
char c;
char a,b,d;
char x;
//char e='a';
//char b;
initstack(&cope);
initstack(&num);
push(&cope,'#');
c=getchar();
while(c!='\n')
{if(isnum(c)) push(&num,c);
else switch(youxian(duqu(&cope),c))
{case '<': push(&cope,c);c=getchar();break;
case '[': out(&cope);c=getchar();break;
case '=':push(&cope,c);c=getchar(); break;
case '>':a=duqu(&num);out(&num);b=duqu(&num);out(&num);d=duqu(&cope);out(&cope);
x=jisuan(a,b,d);push(&num,x);break;
}

}


printf("%c",x);





}

...全文
106 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
javase7 2009-11-22
  • 打赏
  • 举报
回复
明白了,低级错误啊
汗,,,,,,
lixingjian4 2009-11-20
  • 打赏
  • 举报
回复
你用debug模式直接运行到出错的地方就知道啦

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧