将相同的值分配给2d结构对象数组

时间:2020-03-30 07:30:08

标签: c arrays object struct

Struct student
{
        char last_name[30];
        char first_name[30];
};
Struct examination_seating
{
        struct student** seating;
};
void student_init_default(struct student *p)
{
        *p->first_name=*"###";
        *p->last_name=*"###";
}
void examination_seating_init(int rowNum, int columnNum, struct examination_seating *t)
{
        for (int i=0; i<rownNum; i++)
        {
                for(int j=0; j<columnNum; j++)
                {
                        student_init_default(&t->seating[i][j]);
//this creates a read access violation
                }
        }
}

我正在做一个学校项目,并编写了项目,但是调试困难。我的助教和老师提供的帮助很少。我提交了遇到问题的部分代码。我需要将Student_init_default函数的默认值分配给数组。如果我尝试使用char进行操作,我也会收到错误消息。我在网上找不到任何明确的参考文献。

1 个答案:

答案 0 :(得分:0)

        *p->first_name=*"###";
        *p->last_name=*"###";

C字符串不能以这种方式分配(这仅分配第一个字符)。我们必须使用strcpy

        strcpy(p->first_name, "###");
        strcpy(p-> last_name, "###");

此外,由于student_init_default(&t->seating[i][j]) 会造成读取访问冲突,因此您没有正确初始化tt->seating[i],因此仅< em>您提交的代码部分您遇到问题