Bonjour,
Je suis en train de faire des listes en C (listes itératives, relatives et récursives).
J'ai fait les listes itératives et relatives. Ces listes sont composées d'éléments que l'utilisateur pourra insérer par la suite dans ses tests. Moi, je définis un élément comme ceci:
Dans mes fichiers de test, je fais par exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part typedef char* ELEMENT;
... et ça marche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ELEMENT e1 = "1"; insererFin(liste,&e1);
Malgré tout, je ne pense pas que l'utilisateur puisse changer le type de l'élément. Par exemple, si on veut mettre des entiers ou des floats dans la liste; comment faire ?
Cependant, on nous impose de faire comme ceci (c'est un devoir d'école):
Il faut également faire des casts (char*) dans les fonctions qui utilisent ELEMENT*. Est-ce qu'avec cette méthode, on pourra insérer des éléments de n'importe quel type dans les listes ? Si oui, comment faire dans les fichiers de test ? et dans les fichiers sources (car je crois que ça change 2 ou 3 trucs) ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part typedef char ELEMENT;
Sinon, pour tester mes listes, j'ai fait un Makefile. Celui-ci marche mais il a un comportement très bizarre. C'est à dire que je suis obligé de mettre -rm -f *.o pour qu'il puisse refaire les objets ensuite ! Il m'indique des alertes très louches. Y a-t-il un problème dans le Makefile (j'ai un autre Makefile qui s'occupe des sources et des librairies et il marche parfaitement).
Enfin, j'ai des fonctions detruire dans iterative.c et relative.c qui doivent faire le ménage (free). Celle de iterative.c me semble correcte (je ne suis pas sûre) mais celle de relative.c me pose des problèmes. Comment éliminer les cellules d'une liste relative doublement chaînée ?
Voilà, je vous laisse mon projet si vous voulez le voir ou le tester...
merci
Partager