Я хотел бы получить доступ к полю имени из элементов массива и напечатать имя, но у меня возникли проблемы.
Я создал указатель 'L' в callInitialize и установил для него верхний тип структуры List, который я назвал 'studentList'.
int callInitialize () {
/*Initialize a List*/
List studentList;
List *L;
L = &studentList;
Initialize(L);
#ifdef DEBUG
printf("L->count after function call Initialize = %d\n", L->count);
printf("L->items[0].name after function call Initialize = %s\n", studentList.items[0].name);
#endif
return 0;
}
Затем я вызвал Initialize и попытался установить значение для проверки, но это неверно.
void Initialize (List *L) {
char test = "I like you";
L->count = 0;
L->items[0].name = test;
}
Я не уверен, почему L-> items [0] .name = test; не подходит Я получаю сообщение о несовместимых типах, но имя - char, а test - char?
Кроме того, как только я изменю это значение, как я буду печатать это? Я думал, что% s будет правильным, так как тип имени поля - char. Print указан выше в callIntialize как оператор отладки.
Мои объявления структуры:
#define MAXNAMESIZE 20
typedef struct {
char name[MAXNAMESIZE];
int grade;
} Student;
typedef Student Item;
#define MAXLISTSIZE 4
typedef struct {
Item items[MAXLISTSIZE];
int count;
} List;
Спасибо за любую помощь.