• [^] # Re: Retour papier

    Posté par . En réponse au message Affichage listes chainées en C. Évalué à 1. Dernière modification le 23 décembre 2015 à 21:20.

    Dans elt de ma structure Doublet,je stocke un pointeur.
    J'aurai plutot:

    typedef struct Doublet {void *elt;struct Doublet *cdr;} * list;

    Pour car(doublet) si j'ai bien compris ta remarque, j'aurais donc:

     #define doublet ((doublet)->car)
     #define doublet ((doublet)->cdr)

    Puis:

     list cons(void * elt, const list L)
     {list doublet=malloc(sizeof(struct Doublet));
     car(Cons)->elt = elt; 
     cdr(Cons)->L = L; 
     return Cons ;}

    car et cdr c'est justement pour extraire respectivement le premier élément de ma liste et le reste de la liste comme en Lisp.

    Et en parlant de libération de la mémoire tu fais allusion à free() je suppose.

    Il y a t-il quelque chose qui m'aurait encore echappé ?
    Et en ce qui concerne le main qui ferait appel à ma fonction pour l'affichage comment tu le verrais ?

    Merci d'avance.