bug étrange en fin de fonction
Bonjour à tous!
Désolé pour le titre peu explicite, mais mon problème est assez compliqué à expliquer...
Je travaille sur un solveur de nonogramme (un jeu à résolution binaire).
Mon programme compile mais ne tourne pas. J'ai donc cherché d'où vient l'erreur en ajoutant des cout un peu partout. et j'ai identifé que l'erreur arrivait à la fin d'un fonction :
Code:
1 2 3 4 5 6 7 8 9
| void solve() {
algo1();
cout<<"fin solve"<<endl;
}
void algo1() {
...instructions...
cout<<"fin algo"<<endl;
} |
http://pastie.org/1300872 pour un peu plus de code.
à la sortie, je n'ai que "fin algo2" qui s'affiche. je ne comprends vraiment pas d'où cela peut venir. j'ai déjà vérifié les potentiels ; et } manquants. je ne sais plus trop quoi faire... des idées?
merci :)
EDIT
J'ai testé de déporter la fin du code (lignes 46 à 92 dans pastie) de ma fonction algo1() dans une autre fonction, et mon problème s'exporte dans la fonction nouvellement créée. ça ne m'avance pas, mais peut-être que ça vous avancera ^^
EDIT 2
J'ai testé de faire renvoyer une valeur à mes fonctions, de cette manière :
Code:
1 2 3 4 5 6 7 8 9 10
| void solve() {
cout << algo1() << endl;
cout<<"fin solve"<<endl;
}
int algo1() {
...instructions...
cout<<"fin algo"<<endl;
return 1;
} |
le 1 renvoyé par algo1 et le endl sont affichés en console. c'est de plus en plus énigmatique à mes yeux :?
EDIT 3 (vous inquietez pas, je dors comme tout le monde, mais je vis à taïwan, c'est le jour ici)
J'ai reconstruit mon projet avec Code Blocks, pour profiter de son debugger. L'erreur renvoyée quand ça plante est une segmentation fault. Je vois pas trop d'où ça peut venir...