1 pièce(s) jointe(s)
Listes itératives, relatives, recursives et Makefile en C
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:
Code:
typedef char* ELEMENT;
Dans mes fichiers de test, je fais par exemple:
Code:
1 2
| ELEMENT e1 = "1";
insererFin(liste,&e1); |
... et ça marche.
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):
Code:
typedef char ELEMENT;
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) ?
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