Как исправить эту ошибку? Я хочу иметь массив, где я могу сканировать данные «студентов» и, следовательно, использовать структуры. Проблема в том, что структура битового поля в другой структуре терпит неудачу.
Есть ли способ исправить это, не изменяя большую часть кода? Только хочу исправить, что битовые поля (день, месяц и т. Д.) Могут быть выбраны.
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#define MAX 10
#define MAXCHAR 30
char comma;
struct date {
unsigned int day:5;
unsigned int month:4;
unsigned int year:11; //funktioniert bis yr 2047;
};
struct student {
unsigned long matriculation_number;
char first_name[MAXCHAR];
char last_name[MAXCHAR];
struct date birthdate;
}Student[MAX];
/*
void scan_student(void) {
b
} */
int main(void) {
int i = 0;
printf("------------------------------\nGeben Sie alle benötigten Daten ein\n");
printf("Vorname: ");
fgets(Student[i].first_name, MAXCHAR, stdin);
printf("Nachname: ");
fgets(Student[i].last_name, MAXCHAR, stdin);
printf("Matrikelnummer: ");
scanf(" %lu", &Student[i].matriculation_number);
printf("Geburtstdatum (DD.MM.YYYY): ");
scanf(" %u%c%u%c%u", &Student.birthdate.day, &comma, &Student.birthdate.month, &comma, &Student.birthdate.year);
printf("\n");
return EXIT_SUCCESS;
}
ERROR-Log:
student.c: In function ‘main’:
student.c:42:26: error: cannot take address of bit-field ‘day’
scanf(" %u%c%u%c%u", &Student[i].birthdate.day, &comma, &Student[i].birthdate.month, &comma, &Student[i].birthdate.year);
^
student.c:42:61: error: cannot take address of bit-field ‘month’
scanf(" %u%c%u%c%u", &Student[i].birthdate.day, &comma, &Student[i].birthdate.month, &comma, &Student[i].birthdate.year);
^
student.c:42:98: error: cannot take address of bit-field ‘year’
&Student[i].birthdate.day, &comma, &Student[i].birthdate.month, &comma, &Student[i].birthdate.year);