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 用verilog实现tanh函数和softplus函数
  • ¥15 求京东批量付款能替代天诚
  • ¥15 slaris 系统断电后,重新开机后一直自动重启
  • ¥15 51寻迹小车定点寻迹
  • ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
  • ¥15 关于vue2中methods使用call修改this指向的问题
  • ¥15 idea自动补全键位冲突
  • ¥15 请教一下写代码,代码好难
  • ¥15 iis10中如何阻止别人网站重定向到我的网站
  • ¥15 滑块验证码移动速度不一致问题