我是 C 新手,我正在尝试实现一个结构数组。但是由于某种原因,当我尝试通过将数组结构打印到控制台来访问数组结构中的数据时,我似乎无法理解它,它根本不会执行。这是在windows环境下发生的,所以我改了,去了linux。它只是提出分段错误并停止。我已经四处寻找,似乎我的语法是正确的,但我似乎无法摆脱错误。我访问的一个网站是https://www.javatpoint.com/array-of-structures-in-c但我的代码仍然无法正常工作。这是我的 C 文件。
#include <stdio.h>
#include <string.h>
struct student {
char registration_number[15];
char forename[20];
char surname[25];
char department[60];
char gender;
};
int main(void) {
struct student student_record[5];
int i;
for (i = 0; i < 5; i++) {
printf("Student %i", i);
printf("\nInput student forename: ");
scanf("%s",&student_record[i].forename);
printf("\nInput student surname: ");
scanf("%s",&student_record[i].surname);
printf("\nInput student registration number: ");
scanf("%s",&student_record[i].registration_number);
printf("\nInput student department: ");
scanf("%s",&student_record[i].department);
printf("\nInput student gender: ");
scanf("%s",&student_record[i].gender);
printf("\n");
}
printf("Reg No. \t First Name \t Last Name \t Gender \t Department \n");
for (int i = 0; i < 5; i++) {
printf("%s \t %s \t %s \t %s \t %s \n", student_record[i].registration_number, student_record[i].forename, student_record[i].surname, student_record[i].gender, student_record[i].department );
}
}
任何帮助,将不胜感激。