Bonjour,
Je rencontre un problème avec un vecteur de type node (c'est une structure que j'ai réalisé avec des fonctions pour les arbres binaires).
Tout d'abord lorsque j'affiche le "poids" et le "code" dans la boucle for, j'obtiens le bon résultat.
Mais si j'affiche le "poids" et le "code" juste après la boucle for, par exemple pour le 5ème élément de mon vecteur alors le "poids" et "code" correspond à celui du dernier élément et c'est pareil pour tous les éléments de mon vecteur.
J'ai donc réalisé un test avec un vecteur de type int, et là ça marche, j'obtiens bien "5" pour le 5ème élément de ce vecteur.
Voici mon code :
Merci d'avance pour votre aide,
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
18
19
20
21
22
23
24
25
26
27
28
29 vector<node*> T_Arbre(10); vector<int> T_int(10); node* Arbre = NULL; addNode(&Arbre, tab_frequence[0], tab_carac[0]); //addNode(node **tree, unsigned int poids, char code) int y = 0; for(int i = 0; i <= 10; i++) { while(y <= 28) { if(tab_frequence[y] != 0) { setCode(Arbre, tab_carac[y]); setPoids(Arbre, tab_frequence[y]); break; } y++; } y++; T_Arbre[i] = Arbre; T_int[i] = i; cout << "poids : " << T_Arbre[i]->poids << endl; //Retourne bien le poids i. cout << "code : " << T_Arbre[i]->code << endl; //Retourne bien le code i. cout << "Compteur : " << T_int[i] << endl; //Retourne bien le compteur i. } cout << "poids : " << T_Arbre[5]->poids << endl; //Erreur, cela retourne le poids du 10ème élément. cout << "code : " << T_Arbre[5]->code << endl; //Erreur, cela retourne le code du 10ème élément. cout << "Compteur : " << T_int[5] << endl; //Retourne bien le compteur 5.
Cordialement, Flo FR
Partager