Bonjour,
Voila le bout de code qui pose probleme :
Code :
- typedef list<data> ld;
- //...
- ld::iterator d = l.begin();
- while (d != l.end()) {
- diffp=(u_ii - u_i)/u_ii;
- diffn=(u_ii - u_iii)/u_iii;
-
- if (fabs(diffp + diffn) > 2) {
- d--;
- cout <<d->ti << " erased" << endl;
- //l.erase(d);
- d++;
- }
- u_i=u_ii;
- u_ii=u_iii;
- u_iii=(++d)->ti;
- }
|
Quand je decommente la ligne 11 et je commente la 12, normalement je dois enlever l'element precedent.
Or si la ligne 9 est décommentée, j'ai l'erreur suivante :
*** Break *** segmentation violation
Generating stack trace...
0x0804e258 in parser::time_eliminate() + 0x29e from ./fluorescence
0x0804b9cd in main + 0x339 from ./fluorescence
0xb66d9eb0 in __libc_start_main + 0xd0 from /lib/tls/i686/cmov/libc.so.6
0x0804b611 in __gxx_personality_v0 + 0x89 from ./fluorescence
Abandon
Mais si elle est commentée le programme s'éxécute bien. Quelqu'un aurait-il une idée ? Y a-t-il un probleme à se ballader dans les listes avec ++ et -- ?
---------------
A savoir : la dimension de Hausdorff du chou-fleur a été calculée et vaut 2.33