申请空间
#include<iostream>#include <malloc.h>
#define STACK_INIT_SIZE 10000;
//#define STACKINCREMENT 100;
typedef struct
{
char *base;
char *top;
int stacksize;
}SqStack;
/*****************构造一个空栈S**********************************/
void CreatSqStack(SqStack &S)//构造一个空栈S
{
S.base=(char *)malloc(STACK_INIT_SIZE * sizeof(char));
if(!S.base)
exit(0);
S.top=S.base;
S.stacksize=STACK_INIT_SIZE;
}
/***************堆栈*******************************************/
void Push(SqStack &S,char e)
{
*S.top++=e;
}
/******************************删除栈顶元素******************/
void Pop(SqStack &S)
{
char n;
if(S.top==S.base)
n=*--S.top;
}
/**********************************************************/
int main()
{
SqStack S;
char m;
int x;
while(x)
{
printf("请输入”(“或“) ”或“【”或“】”,输入0表示不再继续输入\n");
scanf("%c",&m);
if(m=='('||m=='[')
{
Push(S,m);
}
if(m==')')
{
if(*S.top=='(')
{Pop(S);}
else
{
printf("括号不匹配\n");
break;
}
}
if(m==']')
{
if(*S.top=='[')
{Pop(S);}
else
{
printf("括号不匹配\n");
break;
}
}
if(S.top==S.base)
{
printf("括号不匹配\n");
break;
}
}
if(!(S.top==S.base))
printf("括号不匹配\n");
system("pause");
}
其中在这个程序里这个语句“S.base=(char *)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(char)); ”1. expected `)' before "char" 2. invalid type argument of `unary *' 3.expected `;' before ')' token 。这样三个错误,请问这是怎么回事?又给怎么改呢?哪位大师给指点一下啦!谢谢各位!!!