Voila, j'ai un petit probleme lors de l'execution de mon programme, quand je le lanceet qu'il atteint la partie "resolution" j'ai ce message qui apparait:
Voila la fonction incriminée:Code:Segmentation fault (core dumped)
Petite explication rapide, pour chaque case du tableau ou il ya un 0, je cherche quel sont les candidats possible pour cette case, je le stocke sous forme de file, une fois les candidats trouvés, je les range du une pile d'essais dont la structure est la suivante;Code:
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 void resoudre(int grille[9][9]) { essai e; stack<essai> p; bool b=false; for(int i=0;i<9;i++) { for(int j=0;j<9;j++) { if(grille[i][j]==0) { e.pos.lig=i; e.pos.col=j; e.q=candidats(e.pos,grille); p.push(e); if( !(p.top().q.empty()) ) { grille[i][j]=p.top().q.front(); } else { while(p.top().q.size()<2) { p.pop(); } p.top().q.pop(); i=p.top().pos.lig; j=p.top().pos.col; grille[i][j]=p.top().q.front(); } } } } }
tant qu'on a un candidat possible pour la case, on le met dedans (la tete de la file), si on en a pas, on depile et on prend le candidat suivant, etc, etc ... la solution est trouvée quand toute les cases du tableau sont remplies...Code:
1
2
3
4
5 struct essai { position pos; queue<int> q; };
Le seul probleme, c'est que je vois pas il me dis que je sors du tableau...
quequ'un pourrait il me dire d'ou vient le probleme??? :idea: