Хорошо, так что для моей домашней работы у меня есть функция, которая создает связанный список из файла ввода, и он похож на календарь, поэтому он читает дату и заголовок из файла. Я использую головной узел, который объявлен глобально, чтобы облегчить работу с другими функциями.
Это моя структура узла:
typedef struct event_t{
char title[20];
event_date_t date;
struct event_t *next;
}event_t;
event_date_t - это просто простая структура для даты. функция:
void insert_events_linked_list(FILE *file, int n){
//printf("LL function started\n"); //self-explanatory test line
event_t last;
head.next = &last;
int i;
//This loop will create a ll of the specified length
for(i=0; i<n; i++){
event_t *last = malloc(sizeof(event_t));
int title_test = fscanf(file, "%20s%*c", last->title);
printf("%s\n", last->title); //test line to make sure names are grabbed properly
//This skips the rest of the event and prints error message if title is too long
if(title_test != 1){
fscanf(file, "%*s %*d %*d");
printf("Error: LL event %d title too long\n", i++);
continue;
}
else{
fscanf(file, "%d %d", &last->date.month, &last->date.day);
last = last->next;
}
}
printf("Loop exited");
}
Тестовая строка печатает все заголовки, но показывает ошибку сегментации и прерывается перед печатью "L oop exited"