堆栈错误???
//adt.h
#define stack_init_size 100;
#define stack_increment 10;
typedef struct
{
char *base;
char *top;
int stacksize;
}sqstack;
//stack.cpp
#include<iostream>
#include"ADT.H"
int initstack(sqstack &s)
{
s.base=(char*)malloc(stack_init_size*sizeof(char));
if(!s.base) return 0;
s.top=s.base;
s.stacksize=stack_init_size;
return 1;
}
int gettop(sqstack s,char &e)
{
if(s.top==s.base)
return 0;
else
e=*(s.top-1);
return 1;
}
int push(sqstack &s,char e)
{
if(s.top-s.base>=s.stacksize)
{
s.base=(char*)realloc(s.base,(s.stacksize+stack_increment)*sizeof(char));
if(!s.base)
return 0;
s.top=s.base+s.stacksize;
s.stacksize+=stack_increment;
}
*s.top++=e;
return 1;
}
int pop(sqstack &s,char &e)
{
if(s.top==s.base)
return 0;
e=*--s.top;
return 1;
}
int stackempty(sqstack s)
{
if(s.top==s.base)
return 1;
else
return 0;
}
//main.cpp
#include<iostream>
#include"ADT.H"
extern int initstack(sqstack &s);
extern int gettop(sqstack s,char &e);
extern int push(sqstack &s,char e);
extern int pop(sqstack &s,char &e);
extern int stackempty(sqstack s);
using namespace std;
int main()
{
char e;
sqstack s;
initstack(s);
int n,m;
cin>>n;
cin>>m;
while(n)
{
int k=0;
if(n%m>=10)
k=(n%m-10)+97;
else
k=n%m+48;
push(s,char(k));
n=n/m;
}
while(!stackempty(s))
{
pop(s,e);
printf("%c",e);
}
return 0;
}
写的是关于进制转换的代码
调试后
stack.cpp(6) : error C2143: syntax error : missing ')' before ';'
stack.cpp(6) : error C2059: syntax error : ')'
stack.cpp(6) : error C2100: illegal indirection
stack.cpp(26) : error C2143: syntax error : missing ')' before ';'
stack.cpp(26) : error C2143: syntax error : missing ')' before ';'
stack.cpp(26) : error C2059: syntax error : ')'
stack.cpp(26) : error C2059: syntax error : ')'
stack.cpp(26) : error C2100: illegal indirection