急!!!括号匹配问题

来源:百度知道 编辑:UC知道 时间:2024/06/22 05:36:42
编译总出错 请各位大虾看下 编译环境是c-free
#include "stdio.h"
#define OK 1
#define ERROR -1
typedef struct{
char *top;
char *base;
int stacksize;
}sqstack;
int initstack(sqstack S);
int gettop(sqstack S,char e);
int push(sqstack S,char e);
int pop(sqstack S,char e);
int stackempty(sqstack S);
int main()
{
sqstack s;char ch[80]={0},*p,e;
initstack(s);
printf("input:\n");
gets(ch);p=ch;
while(*p)
{
switch(*p)
{
case '(':
case '[':
case '{': push(s,*p++);break;
case ')':
case ']':
case '}': if(!stackempty(s))
{
pop(s,e);
if(!(e=='('&&*p==')'||e=='['&&*p==']'||e=='{'&&*p=='}'))
{
printf("NO MATCH!!\n&

你用了exit和malloc函数
需要添加头文件
#include<stdlib.h>

试过了,添加头文件后没有编译错误。

函数的 栈参数 都改成 栈指针参数
如:
int initstack(sqstack S);
改成:
int initstack(sqstack *S);
函数体也要做相应修改。

错误信息是什么呢?
没有信息怎么回答呀