probleme de pointeur de pointeur et liste chainée
bonjour,
j'essaye de gerer une file doublement chainée, j'ai utilisé le code de la chaine dans la FAQ de développez:
http://nicolasj.developpez.com/articles/file/
elle utilise les pointeurs de pointeurs et elle marche tres bien, jusque la tout va bien ...
ensuite je voulu créer une fonction pour ajouter des elements automatiquement à la liste en fonction des resultats d'une base de données et c'est la que ca se complique...
dans mon main() ,j'ai donc
Code:
1 2 3 4 5 6
|
queue_s *p_queue = NULL;
queue_createFromDB(&p_queue);
queue_print (&p_queue);// affichage de ma file |
j'utilise un pointeur de pointeur pour manier la file
voici la fonction que j'ai créer:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
//creer la liste a partir de la BDD
void queue_createFromDB(queue_s ** pp_queue)
{
queue_s * tmp=NULL; //creation d'un pointeur de liste temporaire
//...connexion BDD + requete+creation d'une struct "rule"...
//pour chaque "rule" créée, faire:
{
queue_post (&tmp, &p_rule);//ajouter un element a la file , ici un pointeur de pointeur d'une structure 'rule' que g créé plus haut
}
queue_print (&tmp);// affichage de ma file
*pp_queue =tmp; // je donne l'adresse à mon veritable pointeur de file
} |
le probleme c'est quand j'affiche la liste dans la fonction elle apparait bien, mais quand je l'affiche dans mon main() j'ai pas du tout le meme resultat et g des chiffres bizarres qui s'affichent.
je pense avoir un probleme de pointeurs qq part ,j'ai encore des lacunes sur ce sujet, j'en suis bien conscient et j'ai passer plusieurs heures à essayer de comprendre mes erreurs , j'ai essayé plusieurs alternatives mais rien y fait. pourriez vous m'eclairer svp ?
j'espere que j'ai bien expliqué le prob... :lol:
merci