attendu expression before 'struct'

J'obtiens le message d'erreur "expected expression before 'struct'" sur la première ligne de la fonction allouer() ci-dessous. Je ne peux pas comprendre pourquoi.

Je dois dire que j'ai été chargé de faire ce travail de code avec la structure /fonction des en-têtes fournis.

Toute aide est très appréciée!

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <assert.h>
#include <time.h>
struct student{
int id;
int score;
};
struct student* allocate(){
/*Allocate memory for ten students*/
struct student *stud =  malloc(10 * sizeof struct *student);
assert (stud !=0);
return stud;
}
void generate(struct student *students){
/*Generate random ID and scores for ten students, ID being between 1 and 10, scores between 0 and 100*/
srand(time(NULL));
//Generate random ID's
int i;
for(i=0; i<10; i++){
students[i].id = rand()*10+1;
}
//Generate random scores
for(i=0; i<10; i++){
students[i].score = rand()*10+1;
}
}
void output(struct student* students){
//Output information about the ten students in the format:
int i;
for(i=0; i<10; i++){
printf("ID-%d Score-%d\n", students[i].id, students[i].score);
}
}
void summary(struct student* students){
/*Compute and print the minimum, maximum and average scores of the ten students*/
int min = 100;
int max = 0;
int avg = 0;
int i;
for(i=0; i<10; i++){
if(students[i].score < min){
min = students[i].score;
}
if(students[i].score > max){
max = students[i].score;
}
avg = avg + students[i].score;
}
avg = avg/10;
printf("Minimum score is %d, maximum score is %d, and average is %d.", min, max, avg);
}
void deallocate(struct student* stud){
/*Deallocate memory from stud*/
free (stud);
}
int main(){
struct student *stud = NULL;
/*call allocate*/
stud = allocate();
/*call generate*/
generate(stud);
/*call output*/
output(stud);
/*call summary*/
summary(stud);
/*call deallocate*/
deallocate(stud);
return 0;
}

OriginalL'auteur Tanner | 2013-04-16