Un tableau de liste chaînée - C - Programmation
Marsh Posté le 10-08-2009 à 18:07:44
Tu assignes NULL a un s_LIsteDArrete.
Marsh Posté le 10-08-2009 à 20:41:15
Bin oui, justement, l'objectif c'est d'initiaiser la liste chainée, donc de mettre le premier element à NULL.
Et là je comprend pas pourquoi ça marche pas
Marsh Posté le 11-08-2009 à 09:04:26
Dans ton exemple
listeDesArretes->Listes[i] est un tableau de type structure s_ListeDArrete
Tu dois donc l'affecter à l'aide d'une variable de même type.
Marsh Posté le 11-08-2009 à 11:25:37
Hmmm, en cherchant et en m'inspirant de vos réponses j'ai modifié ainsi :
Code :
|
Et il semble que ça marche!
En effet j'avais besoin non d'un tableau mais d'un tableau de pointeur pour initialiser chaque liste chainée!
Merci de vos conseils qui m'ont bien guider.
Marsh Posté le 11-08-2009 à 12:01:04
Par contre fait bien attention à ton allocation de mémoire.
Tu as maintenant un tableau de pointeurs, donc le malloc doit ressembler à ça :
listeDesArretes->Listes = malloc(sizeof(s_ListeDArrete*)*iNombreDeNiveau);
Fait également attention à l'allocation mémoire de chaque structure sur lesquelles pointent les pointeurs compris dans ton tableau ainsi qu'à leur desallocation
Marsh Posté le 12-08-2009 à 08:38:46
Duc_onlajoy a écrit : Et il semble que ça marche! |
D'où l'importance de bien découper ses objets. C'est pourquoi je préconise toujours, quand on gère une liste chainée, de définir un type pour le chainon et aussi un type pour la liste. Ca permet de pouvoir traiter la liste elle-même comme une entité manipulable (et le type qui gère la liste peut inclure ses propres outils comme "nb d'éléments", "element courant", etc...)
Code :
|
Ensuite, te suffit de définir un simple t_tableauDeListeDArrete item. Tu veux taper dans une liste particulière, tu tapes dans item.Listes[n]. Tu ne t'embêtes plus avec ces **. Chaque objet possède son propre type associé...
Marsh Posté le 13-08-2009 à 14:47:19
Merci de tout ces conseils. C'est vrai que cela gagne du temps et simplifie la logique des structures.
Marsh Posté le 10-08-2009 à 17:58:04
Bonjour
Pour des besoins de flexibilité dans mon programme j'utilise des listes chaînées. Mais si j'arrive à utiliser une liste chaînée seule, là je dois utiliser un "tableau de liste chaînée", le tout dans une structure. Malheureusement je dois faire une erreur, c'est certain car j'ai une erreur à la compilation. Voici un extrait de mon code qui ne marche pas!
Merci de votre aide.
L'erreur de compilation est :
20: error: incompatible types in assignement