Duc_onlajoy a écrit :
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!
|
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 :
- // Arrête
- typedef struct{
- s_Point3D sPoint[2];
- }t_Arrete;
- // Chainon d'arrêtes
- typedef struct s_ChainonArrete {
- t_Arrete Arrete;
- struct s_ChainonArrete* next;
- }t_ChainonDArrete;
- // Liste d'arrêtes
- typedef struct {
- t_ChainonDArrete* first;
- size_t nb_elements;
- } t_ListeDArretes
- // Tableau de listes
- typedef struct{
- int iNombreDeListe;
- t_ListeDArrete* Listes;
- }t_tableauDeListeDArrete;
|
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é...
---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.