Salut Tlm,
J'ai un petit probleme d'allocation de memoire je pense.
J'ai beaucoup de mal a l'identifier.
je peux creer des grilles de taille 4 et plus mais pas de taille 2 ou 3....
qqun peut il m'eclairer svp
merci bcp
--------------------------------------------------------------------------
--------------------------------------------------------------------------
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 #ifndef GRILLE_HPP #define GRILLE_HPP class Grille { public: Grille(int dim); Grille(Grille &g); ~Grille(); int getDimension(); int getValeur(int x, int y); bool ligneEstVide(int x); bool colonneEstVide(int y); void ViderPosition(int x, int y); void afficher(); private: int dimension; int** tabValeurs; }; #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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70 #include "Grille.hpp" #include <iomanip> #include <iostream> using namespace std; Grille :: Grille(int dim) { tabValeurs = new int * [dimension = dim]; for (int i = 0; i < dimension ; i++){ tabValeurs[i] = new int [dimension]; for (int j = 0; j < dimension; j++){ tabValeurs[i][j] = 0; } } } Grille :: Grille(Grille &g) { tabValeurs = new int * [g.dimension]; for (int i=0;i<g.dimension;i++){ tabValeurs[i] = new int [g.dimension]; for (int j = 0;j < g.dimension; j++){ tabValeurs[i][j] = g.tabValeurs[i][j]; } } } Grille :: ~Grille() { delete tabValeurs; } int Grille :: getDimension(){ return dimension; } int Grille :: getValeur(int x, int y){ return tabValeurs[x][y]; } bool Grille :: ligneEstVide(int x){ for (int i = 0;i<dimension;i++){ if (tabValeurs[x][i]!=1111){ return false; } } return true; } bool Grille :: colonneEstVide(int y){ for (int i = 0;i<dimension;i++){ if (tabValeurs[i][y]!=1111){ return false; } } return true; } void Grille :: ViderPosition(int noLigne, int noColonne) { tabValeurs[noLigne][noColonne] = 1111; } void Grille :: afficher(){ for ( int i = 0; i < dimension; ++i ) { for ( int j = 0 ; j < dimension; ++j ) { cout << "|"; cout << setw(3) << tabValeurs[i][j]; cout << " |"; } cout << endl << endl; } }
--------------------------------------------------------------------------
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 //Grille grille(2); //Grille grille1(3); Grille grille2(4); Grille grille3(5); Grille grille4(6); Grille grille5(7); Grille grille6(8); //cout<<grille.getDimension()<<endl; //cout<<grille.getValeur(2,2)<<endl; //cout<<grille.getValeur(3,3)<<endl; //cout<<grille.getValeur(1,1)<<endl; grille6.afficher(); grille5.afficher(); grille4.afficher(); grille3.afficher(); grille2.afficher(); //grille1.afficher(); //grille.afficher();
Partager