My_csdn_ID_2016 2016-04-04 18:02 采纳率: 100%
浏览 1801

C 新手请教下面的代码哪里错了?

e:\cat\bo3-1.cpp(1) : error C2628: 'SqStack' followed by 'void' is illegal (did you forget a ';'?)


void InitStack(SqStack &S)
{
if(!(S.base=(SElemType )malloc(STACK_INIT_SIZE*sizeof(SElemType))))
exit(OVERFLOW);
S.top=S.base;
S.stacksize=STACK_INIT_SIZE;
}
void DestroyStack(SqStack &S)
{
free(S.base);
S.base=NULL;
S.top=NULL;
S.stacksize=0;
}
void ClearStack(SqStack &S)
{
S.top=S.base;
}
Status StackEmpty(SqStack S)
{
if(S.top==S.base)
return TURE;
else
return FALSE;
}
int StackLength(SqStack S)
{
return S.top-S.base;
}
Status GetTop(SqStack S,SElemType &e)
{
if(S.top>S.base)
{
e=
(S.top-1);
return OK;

}
else
return ERROR;
}
void Push(SqStack &S,SElemType e)
{
if(S.top-S.base>=S.stacksize)
{
S.base=(SElemType )realloc(S.base,(S.stacksize+STACK_INCREMENT)*sizeof(SElemType));
if(!S.base)
exit(OVERFLOW);
S.top=S.base+S.stacksize;
S.stacksize+=STACK_INCREMENT;
}
*(S.top)++=e;

}
Status Pop(SqStack &S,SElemType &e)
{
if(S.top==S.base)
return ERROR;
e=
--S.top;
return OK;
}
void StackTraverse(SqStack S,void(*visit)(SElemType))
{
while(S.top>S.base)
visit(*S.base++);
printf("\n");
}

  • 写回答

1条回答 默认 最新

  • threenewbee 2016-04-04 22:11
    关注

    你的代码应该是这样的

     struct SqStack
    {
        SqStack * base;
        SqStack * top;
        int stacksize;
    } //这里缺少一个分号
    
    void InitStack(SqStack &S)
    {
        if(!(S.base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType))))
            exit(OVERFLOW);
        S.top=S.base;
        S.stacksize=STACK_INIT_SIZE;
    }
    
    
    评论

报告相同问题?

悬赏问题

  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类