Pour la première partie, tu pourrais ne pas imbriquer tous les tests :
data = malloc(...);
if (!data) {
return NULL;
}
scoresFile = fopen (...);
if (!scoresFile) {
free(data);
return NULL;
}
fread(...);
if (feof (scoresFile)) {
fclose(scoreFile);
free(data);
return NULL;
}
...
Tu peux mettre des
goto vers la fin de la fonction pour une gestion des erreurs plus concise.
Pour la seconde partie, tu devrais utiliser une boucle ou une procédure puisque tu refais toujours la même chose
Ensuite, tu essayes peut-être de faire trop de choses dans une seule fonction. Tu ne pourrais pas séparer la lecture du fichier et la création du MODULE_DATA ?