用C语言编的数据结构程序中出现Argument list syntax error

程序如下
#include<stdio.h>
#define error 0
#define ok 1
typedef int elemtype;
typedef int status;
typedef struct
{elemtype *top;
elemtype *base;
int stacksize;
}
initstack(sqstack &s)
{s.base=(elemtype *)malloc(100*sizeof(elemtype));
s.top=s.base;
s.stacksize=100;
return ok;
}
status push(sqstack s,elemtype e)
{*s.top++=e;
return ok;
}
status pop(sqstack s,leemtype e)
{if(s.top==s.base) return error;
e=*-top;return ok;
}
status stackempty(sqstack s)
{s.base=s.top;
return ok;
}
statusAllBracke_Text(char*str)
{intstack(s);
for(p=str;*p;p++)
{
if(*p='('||*p='['||*p='{')push(s,*p);
else if (*p=')'||*p=']'||*p='}')
{if(stackEmpty(s)) return error
pop(s,c);
if(*p=')'&&c!='(')return error;
if(*p=']'&&c!='[')return error;
if(*p='}'&&c!='{')return error;
}
}
if(!stackEmpty(s))return error;
return ok;
}
main()
{sqstack s;charc,*str;
elemtype e;
test(*str);
}

运行后出现Error turboc.c 11: Argument list syntax error
什么意思
怎么改
因该怎么改

initstack(sqstack &s)
这个&s的用法,c里面是没有的,是c++里面的引用,估计你是抄的类c的代码,很多地方要改的

改得地方比较多,比如这边,应该改成initstack(sqstack *s) ,然后里面的调用.形式改成->形式
但是同步的,需要把下面sqstack s等等的定义改成sqstack *s
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-11-05
首先,你要把后缀名命为cpp;
其次,里面每个函数里面需要分配空间的注意一下,不符合c语法的要适量改变。还有,将某些变量什么的定义加进去!
差不多就这么多吧
相似回答