• # Retour papier

    Posté par (site web personnel) . En réponse au message Affichage listes chainées en C. Évalué à 2.

    Il faut revoir ta structure du doublet, dans elt tu stockes un entier ou un pointeur ?

    Dans ta définition de car(doublet), tu accèdes un champs car qui n'existe pas. car(doublet), ça semblerait plutôt être simplement (doublet) [1]. À ce moment, tu peux écrire car(Cons)->elt = elt;.

    M'enfin, pour moi car et cdr c'est pour extraire, pas pour aller modifier. Pour faire le Cons en C j’accéderais directement aux champs.

    [1] Sauf que là tu conserves dans ton doublet un lien vers la liste, et tu retournes "l'original" - s'il fait partie d'une liste référencée par ailleurs et qu'ensuite tu le modifies... il faudrait allouer un doublet à retourner, et gérer les allocations / libérations mémoire (il me semble que le lisp utilise un ramasse miettes pour gérer la perte de référence sur ses structures dynamiques...).

    Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN