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
j'utilise un pointeur de pointeur pour manier la file
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 queue_s *p_queue = NULL; queue_createFromDB(&p_queue); queue_print (&p_queue);// affichage de ma file
voici la fonction que j'ai créer:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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...![]()
merci
Partager