Bonjour,
Lors d'un cours de C, mon prof m'a dit quelque chose qui m'a énormément surpris, de par son expérience je le crois mais en tiquant un peu.
Suite à plusieurs lignes de codes qu'il nous a donné sur les listes doublement chainées, il y a un petit bug je me demande si cela ne vient de ce qui m'a choqué. Je vous explique, voici les structures sur lesquelles ont travaille :
Apres dans une fonction qui parcourt la liste pour l'afficher voilà ce qui fait
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 typedef struct cellule { int val; struct cellule *prec; struct cellule *suiv; } cellule; typedef cellule* liste;
Personnelement j'aurais plus fait un truc comme ca (i.e sans allouer de la memoire a l'aide de malloc() ):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 void print_liste (liste l) { liste tmp; tmp = (liste) malloc( sizeof(cellule) ); tmp = l; while(tmp != NULL) { printf("%d ",tmp->val); tmp = tmp->suiv; } }
Mis à part le fait que mon prof cast le malloc() pourriez-vous me donner votre avis s'il vous plaît!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 void print_liste (liste l) { liste tmp; tmp = l; while(tmp != NULL) { printf("%d ",tmp->val); tmp = tmp->suiv; } }
Merci d'avance
Partager