jMfOvO 2023-05-11 03:30 采纳率: 33.3%
浏览 423

引发异常0xC0xC0000005: 读取位置 时发生访问冲突。

0x00007FFA01CC56D5 (ucrtbased.dll)处(位于 test.exe 中)引发的异常: 0xC0000005: 读取位置 0xFFFFFFFFFFFFFFFF 时发生访问冲突。
然后后面那个new的指针也没有运行成功
这个应该怎么解决啊,代码如下

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
class Teacher {
private:
    char NAME[30], GENDER[20], DEPT[20];
    int AGE;
public:
    void Register(const char name[30], const char gender[20], int age, const char dept[20]) {
        strcpy(NAME, name);
        strcpy(GENDER, gender);
        AGE = age;
        strcpy(DEPT, dept);
    }
    void ShowMe();
    Teacher(const char* name, const char* gender, int age, const char* dept) {
        strcpy(NAME, name);
        strcpy(GENDER, gender);
        AGE = age;
        strcpy(DEPT, dept);
        cout << "正在生成1个教师类对象,姓名为" << NAME << endl;
    }
    ~Teacher() {
        cout << "正在注销1个教师类对象,姓名为" << NAME << endl;
    }
}; 
void Teacher::ShowMe() {
    const char *m = "male";
    const char* f = "female";
    cout << "该教师姓名为:" << NAME << ",性别为:" << GENDER << ",年龄为:" << AGE << endl;
    if (strcmp(GENDER, m) == 0)
        cout << "该教师还有" << 60 - AGE << "年退休" << endl;
    else if (strcmp(GENDER, f) == 0)
        cout << "该教师还有" << 55 - AGE << "年退休" << endl;
}
int main() {
    Teacher t1[2]{ {"TOM","male",30,"计算机院"},{"JERRY","female",30,"计算机院"} };
    t1[0].ShowMe();
    t1[1].ShowMe();
    Teacher** p = new Teacher * [2];
    p[0]->Register("张三", "male", 30, "计算机院");
    p[1]->Register("李四", "female", 30, "计算机院");
    p[0]->ShowMe();
    p[1]->ShowMe();
    delete[]p;
    return 0;
}

展开全部

  • 写回答

2条回答 默认 最新

  • 垄断的5心 2023-05-11 03:45
    关注

    这个问问gpt4看看能不能回到,我试了试

    评论
    垄断的5心 2023-05-11 03:45

    不过还是需要看看其他的能不能解决这个问题

    回复
  • CSDN-Ada助手 CSDN-AI 官方账号 2023-05-11 06:36
    关注
    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部