icsad 2022-03-27 20:44 采纳率: 87.5%
浏览 23
已结题

请问一下我的结构体有问题吗?


#include<iostream>
#include<stack>
using namespace std;
#define MAXSIZE 100
#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef int SElemType;

Typedef struct 
{
    SElemType *base;
    SElemType *top;
    int stacksize;
}SqStack;


Status InitStack(SqStack &S){
    S.base=new SElemType[MAXSIZE];
    if(!S.base)
        exit(OVERFLOW);
    S.top=S.base;
    S.stacksize=MAXSIZE;
    return OK;
}

Status Push(SqStack &s,SElemType e){
    if(S.top-S.base>=MAXSIZE)
        return ERROR;
    *S.top=e;
    S.top=S.top+1;
    return OK;
}

Status Pop(SqStack &S,SElemType &e){
    if(S.top==S.base)
        return ERROR;
    S.top=S.top-1;
    e=*S.top;
}

img


这是报错的内容

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2022-03-27 21:30
    关注

    修改处见注释,供参考:

    #include<iostream>
    #include<stack>
    using namespace std;
    #define MAXSIZE 100
    #define OK 1
    #define ERROR 0
    #define OVERFLOW -2
    typedef int SElemType;
    typedef int Status;    //修改
    typedef struct sqstack //Typedef struct 修改
    {
        SElemType *base;
        SElemType *top;
        int stacksize;
    }SqStack;
    
    
    Status InitStack(SqStack &S){
        S.base=new SElemType[MAXSIZE];
        if(!S.base)
            exit(OVERFLOW);
        S.top=S.base;
        S.stacksize=MAXSIZE;
        return OK;
    }
    
    Status Push(SqStack &S,SElemType e){ //SqStack &s, 修改
        if(S.top-S.base>=MAXSIZE)
            return ERROR;
        *S.top=e;
        S.top=S.top+1;
        return OK;
    }
    
    Status Pop(SqStack &S,SElemType &e){
        if(S.top==S.base)
            return ERROR;
        S.top=S.top-1;
        e=*S.top;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月4日
  • 已采纳回答 3月27日
  • 创建了问题 3月27日

悬赏问题

  • ¥15 matlab实现基于主成分变换的图像融合。
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊