problème d'allocation de mémoire
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:
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:
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:
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(); |
--------------------------------------------------------------------------