冀行简 2021-12-08 08:48 采纳率: 100%
浏览 63
已结题

请问如何解决缓冲区溢出的问题

int newSize = this->EmpNum + addNum;
        Worker ** newSpace=new Worker* [newSize];
        if (this->EmpArray != NULL) {
            for (int i = 0; i < this->EmpNum; i++) {
                newSpace[i] = EmpArray[i];
            }
        }
        for (int i = 0; i < addNum; i++) {
            int id;
            string name;
            int dselect;

            cout << "Please enter number " << i + 1 << " staff's number : ";
            cin >> id;
            cout << "Please enter number " << i + 1 << " staff's name : ";
            cin >> name;
            cout << "Please enter number " << i + 1 << " staff's department select : "<<endl;
            cout << "1. employee" << endl;
            cout << "2. manager" << endl;
            cout << "3. boss" << endl;
            cin >> dselect;
            Worker* worker = NULL;

            switch (dselect) {
            case 1:
                worker = new Employee(id, name, 1);
                break;
            case 2:
                worker = new Manager(id, name, 2);
                break;
            case 3:
                worker = new Boss(id, name, 3);
                break;
            default:
                break;
            }
            newSpace[this->EmpNum+i] = worker;
        }
    
        delete[] EmpArray;
        this->EmpArray = newSpace;
        this->EmpNum = newSize;

        cout << "Add successfully!" << endl;

        this->Save();

img

img

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 12月16日
    • 修改了问题 12月8日
    • 创建了问题 12月8日

    悬赏问题

    • ¥15 phython如何实现以下功能?查找同一用户名的消费金额合并—
    • ¥15 孟德尔随机化怎样画共定位分析图
    • ¥18 模拟电路问题解答有偿速度
    • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
    • ¥15 误删注册表文件致win10无法开启
    • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
    • ¥60 ESP32怎么烧录自启动程序
    • ¥50 html2canvas超出滚动条不显示
    • ¥15 java业务性能问题求解(sql,业务设计相关)
    • ¥15 52810 尾椎c三个a 写蓝牙地址