Bonjour, savez vous si le exit(EXIT_FAILURE) est une façon propre de finir une fonction quand dans mon cas j'alloue dynamiquement mais que je ne peux pas libérer la mémoire à la fin de cette fonction ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/**
* Ajoute un time/player/score en fin de Liste
* @param temps, pointeur vers un nombre x(TIME_ARG) d'entiers.
* @param liste La liste.
* @param player, pointeur vers une chaîne de characters à insérer.
* @param score l'entier à insérer.
* @return La liste avec les nouveaux élements ajoutés.
*/
p_list push_back_list(p_list liste, int temps[], char *player, int score) {
  	t_classements *nouveau_score ; /* nouveau score de type classements. */
    nouveau_score = malloc(sizeof(*nouveau_score));
    nouveau_score->classement = malloc(sizeof(*nouveau_score->classement));
    nouveau_score->classement->temps = malloc(sizeof(*nouveau_score->classement->temps) * TIME_ARG);
    unsigned int taille_chaine = strlen(player);
    nouveau_score->classement->nom = malloc(sizeof(*nouveau_score->classement->nom) * taille_chaine);
  	if(nouveau_score == NULL || nouveau_score->classement == NULL || nouveau_score->classement->nom == NULL){
      	fprintf(stderr, "Erreur : probleme allocation dynamique.\n");
      	exit(EXIT_FAILURE);
	  }
    strcpy(nouveau_score->classement->nom, player);
    nouveau_score->classement->temps = temps;
    nouveau_score->classement->score = score;
  	(*nouveau_score).next = NULL ; /* initialiser l'élément suivant à NULL */
	  if(is_empty_list(liste)){
        return nouveau_score;
    }
    t_classements *temp;
    temp = liste;
  	while(temp->next != NULL) {
        temp = temp->next;
    }
  	temp->next = nouveau_score;
  	return liste; /* retourne l'adresse du nouveau_score. */
}