Bonjour,
j'ai un petit problème de seg fault à l'exécution...
voici un extrait de la fonction où sa plante :
ça plante au début du if à l'instruction
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 void DataMatrice::getPop(int pos, bool Cur) { fstream f; string path=_nameTab[pos]+".txt"; f.open(path.c_str(), ios::in); if (!f.is_open()) { cout << "error::unable to open file" << endl; } string trash; int count=0; for (int i=0; i<5; i++) f >> trash; int size; int n=0; if (Cur) { f >> _numTabCur; for (int i=0; i<_numTabCur; i++) { f >> _sizeTabCur[i]; } _biggerSizeCur=_sizeTabCur[_numTabCur-1]; f >> trash; f >> trash; for (int i=0; i<_numTabCur; i++) for (int j=0; j<_sizeTabCur[i]; j++) { f >> _curPop[i][j]; cout << "_curPop[" << i << "][" << j << "]=" << _curPop[i][j] << " " << endl; count++; n++; } } f.close(); }
j'ai vérifié en faisant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part f >> _numTabCur;
et je n'ai bien sur que test1 qui s'affiche (avec Segmentation Fault après)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 cout << "test1" << endl; f >> _numTabCur; cout << "test2" << endl;
pour info, voici un extrait du header où est déclaré _numTabCur :
(le code compile, les using namespace sont à priori bien placés, à priori idem pour les header)
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 const int MAX_SIZE=65530; const int MAX=800; class DataMatrice { private : string _path; string _nameTab[MAX_SIZE]; int _numPop; float _matrice[MAX][MAX]; unsigned short _curPop[MAX][MAX]; unsigned short _tempPop[MAX][MAX]; int _sizeTabCur[MAX]; unsigned short _numTabCur; int _biggerSizeCur; int _sizeTabTemp[MAX]; unsigned short _numTabTemp; int _biggerSizeTemp; int _sizeCompare[MAX]; unsigned short X[MAX][MAX]; unsigned short Y[MAX][MAX]; [...] public : void getPos(int pos, bool Cur); };
Merci d'avance, Léo
P.S.: je sais que le code n'est pas très optimisé (notamment les f >> trash à répétition mais ce n'est pas, pour l'instant, mon soucis le plus important)
Partager