Bonjour à tous ,
j'utilise une File dans mon code C++.
quelqu'un me propose une solution pour copier les élements d'une file dans une autre .
merci d'avance pour l'aide .
Bonjour à tous ,
j'utilise une File dans mon code C++.
quelqu'un me propose une solution pour copier les élements d'une file dans une autre .
merci d'avance pour l'aide .
Bonjour,
je pense ce que cela pourra t'aider
voici le fichier File.cc
le code génère une erreur lorsque j'appelle la méthode Enfiler()
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 #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=0;i<taille;i++) window[i]=window[i+1]; } 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 de m'aider à trouver la source d'erreur .
Tu as une erreur de segmentation dans la fonction decaler_tableau() qui est appelée par défiler()
Je ne peux que te conseillais d'utiliser les conteneurs de la STL
Partager