int totalExams = 0; while(!feof(examfp)) { totalExams++; /* Load exam or die */ if(!fscan_exam(examfp, &exams[totalExams - 1], key->questions)) { printf("Err: Malformed student exam on line %d\n", totalExams + 1); return FAILURE; } exams = realloc(exams, sizeof(struct t_exam) * (totalExams + 1)); // Reasize the array grade_exam(&exams[totalExams - 1], key); // grade exam }