添加学生信息不成功,选中这个添加函数的时候会报权限访问冲突

问题遇到的现象和发生背景

我在用c++写学生成绩管理系统

遇到的现象和发生背景,请写出第一个错误信息

我在写添加成员信息模块的时候总是访问权限冲突,请大家指出我的问题

Node* creat() {// 产生一个新链表,仅1节点
    Node* head = NULL;
        head = (Node*)malloc(sizeof(Node));        // 新申请一个节点空间
        if (head == NULL)
        {
            printf("申请空间出错。");
            exit(1);
        }
        head->next = NULL;                            // 新建的唯一节点也是头、也是尾
        // 可以在此加语句输入数据
        return head;
}
//添加学生信息
void Add(Node* head ,string name,int age) {
    Node *p, *q;
    if (head == NULL) {
        head = creat();
        head->data.S_name = name;
        head->data.S_age = age;
    }
    else {

        p = head;
        while (p->next != NULL)
            p = p->next;
        Node* q = (Node*)malloc(sizeof(Node));
        if (q == NULL) {
            cout << "申请空间错误" << endl;
            exit(1);
        }
        q->next = NULL;
        p->next = q;
        q->data.S_name = name;
        q->data.S_age = age;
    }
    return ;
}


用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
运行结果及详细报错内容

img

我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%

我学了很多网课的但是总是报错

我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”

img

从目前代码看,Add函数有点问题,改为
void Add(Node* &head ,string name,int age)
因为函数中可能修改head指针