Okay, here's the problem...
Code:
int main(){
node *current, *temp;
printf("\n\n");
//current = create_list();
get_records(/*current*/);
do{
printf("%s %s %s %s %d:%.2d %s %s %.2f\n", current->DETAILS.year, current->DETAILS.date, current->DETAILS.month, current->DETAILS.day, current->DETAILS.hour, current->DETAILS.min, current->DETAILS.TimeOfDay, current->DETAILS.number, current->DETAILS.cost);
temp = current->next;
current = temp;
}while(temp != NULL);
puts("\n");
}
Now, you'll notice here that you declare current, but you don't ever actually initialize it to point at the list. So when you print what current's pointing to, you get meaningless output and a crash.
The only reason that you're getting anything to print out is because in get_records, you make it print out the nodes while it adds them to the linked list. Once it finishes that, it tries printing them in main, and BOOM.