Присвоение того же значения массиву 2d struct object - PullRequest
0 голосов
/ 30 марта 2020
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 голосов
/ 30 марта 2020
        *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], поэтому было неразумно, что вы только отправили части кода у вас возникли проблемы с .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...