Il faut bien regarder la définition des types. list est un pointeur sur struct Doublet, si tu alloues le sizeof d'un list, tu alloues juste un pointeur... si tu l'utilises comme un Doublet, tu bug.
Pour la définition en macros #define, comme les fonctions ne font que retourner des attributs de structure, il suffit de les mettre dans le développement des macros:
(j'ai peut-être sur-parenthésé... mais avec les macros vaut mieux être prudent, tu ne sais pas dans quel contexte elles vont être utilisées)
Pour les sous listes justement l'exo d'après demande de definir à l'aide de #define, caar et cadr et construire une liste pour les tester et afficher leur résultat. Mais avant je dois parvenir à faire pour une liste simple.
...ce que je craignais. Il va falloir que tu transformes ton elt en potentielle liste, pour pouvoir aller piocher le premier élément qui pourra lui-même être une liste. Éventuellement jette un coup d'œil à uintptr_t comme type pour elt. Au niveau des contrôles de type, ça va être moche.
Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN
[^] # Re: Retour papier
Posté par lolop (site web personnel) . En réponse au message Affichage listes chainées en C. Évalué à 2. Dernière modification le 22 décembre 2015 à 16:26.
Il faut bien regarder la définition des types.
listest un pointeur surstruct Doublet, si tu alloues le sizeof d'un list, tu alloues juste un pointeur... si tu l'utilises comme un Doublet, tu bug.Pour la définition en macros
#define, comme les fonctions ne font que retourner des attributs de structure, il suffit de les mettre dans le développement des macros:(j'ai peut-être sur-parenthésé... mais avec les macros vaut mieux être prudent, tu ne sais pas dans quel contexte elles vont être utilisées)
...ce que je craignais. Il va falloir que tu transformes ton
elten potentielle liste, pour pouvoir aller piocher le premier élément qui pourra lui-même être une liste. Éventuellement jette un coup d'œil àuintptr_tcomme type pourelt. Au niveau des contrôles de type, ça va être moche.Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN