bonjour,

tab[0][0] me donne segmentation fault

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
grille::grille(grille &copieGrille){
	lieu **grilleNew;
	grilleNew=new lieu*[9];
	for(int y = 0; y < 9; y++){
		grilleNew[y]=new lieu[9];
	}
	for(int ligne(0);ligne<9;ligne++)
		for(int colonne(0);colonne<9;colonne++){
			copieGrille.setChiffreGrille(ligne,colonne,
																				this->getChiffreGrille(ligne,colonne));
			for(int i(1);i<=9;i++)
				if(getPossiblesGrille(ligne,colonne,i))
					copieGrille.setPossiblesGrille(ligne,colonne,i);
		}
	for(int y = 0; y < 9; y++){
   	delete [] tab[y]; 
	}
	delete [] tab;
	tab=grilleNew;
	for(int y = 0; y < 9; y++){
   	delete [] grilleNew[y]; 
	}
	delete [] grilleNew;
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
grille::grille(){
	tab=new lieu*[9];
	for(int y = 0; y < 9; y++){
    tab[y] = new lieu[9];
	}
}
 
grille::~grille(){
	for(int y = 0; y < 9; y++){
		delete [] tab[y]; 
	}
	delete [] tab;
}
Le segmentation fault est ci-dessous avec ligne=0 et colonne=0
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
int grille::getChiffreGrille(int ligne,int colonne){
	return tab[ligne][colonne].getChiffre();
}
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
#ifndef LIEU_HPP_
#define LIEU_HPP_
#include <vector>
class lieu{
private:
	int chiffre;
	std::vector<int> possibles;
public:
	lieu operator=(lieu copieLieu);
	int getChiffre();
	bool getPossibles(int indice);
	void setChiffre(int indice);
	void setPossibles(int i);
	void unsetPossibles(int indice);
	bool possibleUnique();
	int quelUnique();
	void lieuZero();
//	int dernierPossible();
};
#endif
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
#ifndef GRILLE_HPP
#define GRILLE_HPP
#include "lieu.hpp"
class grille{
private:
	lieu **tab;
public:
	grille();
	~grille();
	grille(grille &copieGrille);
	bool absentLigne(int ligne,int chiffre);
	bool absentColonne(int colonne,int chiffre);
	bool absentBloc(int bloc,int chiffre);
	bool grilleIncomplete();
	int getChiffreGrille(int ligne,int colonne);
	void setChiffreGrille(int ligne,int colonne,int chiffre);
	bool getPossiblesGrille(int ligne,int colonne,int indice);
	void setPossiblesGrille(int ligne,int colonne,int indice);
	void zeroGrille();
	void init();
	void indicer();
	void resoudre();
	void afficher();
	void afficherIndices();
	bool alignementVerticalBloc(int bloc,int colonne,int indice);
	bool alignementHorizontalBloc(int bloc,int ligne,int indice);
	void supprimerChiffreLigne(int bloc,int ligne,int occurence);
	void supprimerChiffreColonne(int bloc,int colonne,int occurence);
	bool uniqueLigne(int ligne,int chiffre);
	bool uniqueColonne(int colonne,int chiffre);
	bool uniqueBloc(int bloc,int chiffre);
};
 
#endif
quelqu'un a une idée?