Pb de récuperation d'une liste chainée passée en réf à une autre fonction
amosaid
Messages postés7Date d'inscriptionmardi 17 février 2009StatutMembreDernière intervention15 avril 2011
-
15 avril 2011 à 16:22
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023
-
15 avril 2011 à 16:59
Bonjour,
mon code (en c) contient des appels imbrquées des fonctions, chaque fonction doit retourner TRUE ou FALSE (pas d'échage de variables par "return") c.a.d que les modification sur les variables seront effectués par des passafes par référence.
j'ai créée un .h pour les définnition du type liste chainée ("typedef.h").
mon problème c'est lorsque j'affiche le continue de la variables (listes chainées) par une fonction appelante, passée en référence à une autre fonction (appelée), le continue (qui était correcte dans la fonction appelé de remplissage des listes chainées) sera erroné, et l'exécution fait un crash
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023123 15 avril 2011 à 16:59
Déjà ceci est fortement déconseillé:
typedef s_tag* taglist;
On ne masque jamais une étoile ! C'est important pour la compréhension du code. Faire un typedef ne me gêne pas, mais jamais dans le but de ne plus afficher une étoile. En regarde ton code, j'ai énormément de mal à savoir si je manie un pointeur ou une structure. C'est très frustrant...
Sinon, j'ai relevé un truc étrange:
void afficherListe(taglist listep) // Sans étoile
int texte_parser(taglist *listep) // Avec étoile
int fct_parsing (taglist *listep) // Avec étoile
{
texte_parser(&listep); // Mmmm, listrep, dasn ce cas, non ?
afficherListe(listep); // Mmmm, *listrep, dasn ce cas, non ?
return 0;
}
________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfoliohttp://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question