木木em哈哈 2022-05-10 20:25 采纳率: 0%
浏览 299
已结题

C2100非法的间接寻址问题求解

倒数11和倒数17行出错

#include<iostream>
using namespace std;
#define SElemType student

#define Maxsize 100
typedef struct
{
    int id;
    int gender;
    string name;
    int age;
}student;
typedef struct
{
    SElemType* base;//栈底指针
    SElemType* top;//栈顶指针
    int stacksize;//栈可用的最大容量
}SqStack;
int InitStack(SqStack& S)
{
    //构造一个空栈
    S.base = new SElemType[Maxsize];//为顺序栈动态分配一个最大容量为Maxsize的数组空间
    if (!S.base)
        exit(OVERFLOW);//存储分配失败
    S.top = S.base;//栈顶指针等于栈底指针
    S.stacksize = Maxsize;
    return 0;
}
//顺序栈的入栈
bool Push(SqStack* S, SElemType *e)
{
    if (S->top - S->base == Maxsize)
        return false;//栈满
    S->top->id = e->id;
    S->top->age = e->age;
    S->top->gender = e->gender;
    S->top->name = e->name;
    S->top++;
    return true;
}
//2、出栈
SElemType PopSqStack(SqStack* s)
{
    if (s->top == s->base)
        cout << "erroe\n" << endl;
    else
    {
        cout << "OK\n" << endl;
        return *(s->top - 1);
    }
}

//菜单
void menu()
{
    cout << "***************************************************************************" << endl;
    cout << "***********************************1、入栈*********************************" << endl;
    cout << "***********************************2、出栈*********************************" << endl;
    cout << "***********************************0、退出*********************************" << endl;
    cout << "***************************************************************************" << endl;
}
int main()
{
    int choice;
    int length;
    student a;
    SElemType* b=new SElemType;
    SqStack S;
    InitStack(S);
    void menu();
    cout << "输入选择" << endl;
    cin >> choice;
    switch (choice)
    {
        case 1:
        {
            cout << "输入入栈的个数" << endl;
            cin >> length;
            for (int i = 1; i <= length; i++)
            {
                cout << "输入第" << i << "个id,age,name,gender" << endl;
                cin >> a.id >> a.age >> a.name >> a.gender;
                Push(*S, a);                                                //这错了
            }
            break;
        }
        case 2:
        {
            b = PopSqStack(*S);                                                    //这也错了
            cout << b->name << " " << b->age << " " << b->gender << " " << b->id << " " << endl;
            break;
        }
        default:
            cout << "菜单序号输入有误!" << endl;
            system("pause");
            break;
    }
    return 0;
}


  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 5月18日
    • 创建了问题 5月10日

    悬赏问题

    • ¥15 网络爬虫 在北京新发地抓取数据
    • ¥15 在centos7安装conda
    • ¥15 c#调用yolo3 dll文件获取的数据对不上
    • ¥20 WPF 如何实现多语言,label 和cs(live Charts)中是否都能翻译
    • ¥15 STM32F103上电短路问题
    • ¥15 关于#单片机#的问题:以ATMEGA128或相近型号单片机为控制器设计直流电机调速的闭环控制系统(相关搜索:设计报告|软件设计|流程图)
    • ¥15 打开软件提示错误:failed to get wglChoosePixelFormatARB
    • ¥15 (标签-python|关键词-char)
    • ¥15 python+selenium,在新增时弹出了一个输入框
    • ¥15 苹果验机结果的api接口哪里有??单次调用1毛钱及以下。