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进行操作,我也会收到错误消息。我在网上找不到任何明确的参考文献。
答案 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])
会造成读取访问冲突,因此您没有正确初始化t
或t->seating[i]
,因此仅< em>您提交的代码部分您遇到问题。