Bonjour à tous ,
j'espère que vous allez m'aider .
en fait,je trouve un résultat bizarre : taille du vecteur négative !!
mon code est trop long donc j'essaierai de citer l'essentiel .
j'ai une structure , dans laquelle je définit un vecteur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
struct mon_pkt {
	...
	std::vector<nsaddr_t> ma_list_;
        ...
	inline	 int taile() {
	 		return ma_list_.size() ;
	}
};
ensuite, j'utilise cette structure , je crée une variable ph de type mon_pkt
aprés je stocke les tailles des vecteurs dans une file appelée window
Code : Sélectionner tout - Visualiser dans une fenêtre à part
window.Enfiler(ph->taille());
puis, j'utilise les valeurs stockées dans la file :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
for(int i=0;i<y;i++) //y nombre d'éléments dans la file window
			 {
				r = window.get_element(i);
				 printf( " size = %d  \n ", r );
                         }
voici ce que j'obtient :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
size = -1219271720  
size = 16  
size = 41  
size = 58
le premier vecteur de taille -1219271720 !!!!!!!
je sais pas d'ou vient cette valeur
A propos la classe File , voici le code :
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
// Fichier File.cpp
// Définitions des fonctions membres de la classe File
#include <cassert>
#include <iostream>
#include <stdio.h>
#include "File.h"
	File::File ( int taille )
	// Constructeur
		{
		window = new int [taille];
		}
	//File::~File ()
	//	{
	//	delete[] window;
	//	}
		// destructeur
	void File::ViderFile ()
		{
		for(int i=0;i<taille;i++)
			{
				window[i]=0;
			}
		}
	void File::Enfiler ( const int & element )
		{
			if ( FilePleine())
				int x = Defiler();
			int indice = dernier_indice();
			window[indice] = element;
 
		}
	int File::Defiler ()
		{
			//if ( FileVide() )
				//printf("erreur la file vide");
			int x = window[0];
			Decaler_tableau();
			return x ;
 
		}
	int File::PremierElement () const
		{
			if ( FileVide() ) 
				printf("erreur la file vide");
			return window[0];
		}
	bool File::FileVide () const
		{
			int nbre_element = 0 ;
			for (int i=0;i<taille;i++)
				if (window[i]==0)
				{
					nbre_element ++;
				}
			if (nbre_element == taille )
				return 1;
			else 
				return 0;
		}
	bool File::FilePleine () const
	 	{
		int nbre_element = 0 ;
			for (int i=0;i<taille;i++)
				if (window[i]!=0)
				{
					nbre_element ++;
				}
			if (nbre_element == taille )
				return 1;
			else 
				return 0;
		}
	int File::get_element(int position)
		{
			return window[position];
		}
	int File::dernier_indice()
		{
			for (int i=0;i<taille;i++)
				if (window[i]==0)
				{
					return i;
					break;
				}
		}
	void File::Decaler_tableau()
		{	
			for (int i=1;i<taille;i++)
				window[i-1]=window[i];
		}
	File File::copie_file()
		{
 
			File copie = File(taille);
			int i=0 ;
			for  (int i=0;i<taille;i++)
			{
				copie.Enfiler(window[i]);
			}
			return copie;
		}
merci d'avance pour l'aide