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:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Segmentation fault (core dumped)
Voila la fonction incriminée:
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
 
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();
				}
			}
		}
	}
}
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
struct essai
{
	position pos;
	queue<int> q;
};
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...

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???