Erreur : invalid types «int[int]» for array subscript
Bonjour,
Je débute en C++ et j'essaye de faire un petit projet pour appréhender toutes les facettes de ce langage. J'ai quelques notions en C mais toujours des problèmes avec ces satanés pointeurs, adresses etc...
Lorsque je lis un cours, je comprends pas trop mal mais il faut à chaque fois que je réfléchisse (trop longtemps...) lorsque je vois un *, ** ou & :cry:
Et donc je ne m'en sors pas, j'ai beau rabâcher tout ça, ça ne rentre pas...
Ca doit être l'âge...:roll:
En tout cas, je tente tout de même de développer un jeu de morpion.
Voici mes 3 fichiers :
Définition de ma classe Echiquier : l'objet possède un tableau à 2 dimensions de 3 x 3 (aie :calim2: les problèmes vont venir de là...), une méthode init() et une methode print() :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
// morpion.h
#ifndef MORPION_H
#define MORPION_H
class Echiquier {
public:
int plateau[3][3] ;
void init() ;
void print() ;
} ;
#endif |
Définition des fonctions : la méthode init() sur un objet de classe Echiquier rempli le tableau à 2 dimensions de 0; la méthode print() pour l'instant ne fait rien :roll:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
// morpion.cpp
#include "morpion.h"
void Echiquier::init() {
for ( int i=0; i<3; i++ ) {
for ( int j=0; j<3; j++ ) {
plateau[i][j] = 0 ;
}
}
}
void Echiquier::print() {
} |
Le programme en lui-même qui créé un objet ech de la classe Echiquier et qui l'initialise :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
// morpionTest.cpp
#include <iostream>
#include "morpion.h"
using namespace std;
int main() {
Echiquier ech ;
ech.init();
} |
A la compilation,
Code:
gcc morpion.cpp morpionTest.cpp
j'ai l'erreur suivante :
Code:
1 2
| morpion.cpp: In member function «void Echiquier::init()»:
morpion.cpp:8: erreur: invalid types «int[int]» for array subscript |
Je me doute qu'il s'agit d'un problème du au tableau à deux dimensions et à l'utilisation de pointeurs pour remplir celui-ci. J'ai essayé ceci sans trop comprendre ce que je faisais mais l'erreur est la même :
Code:
1 2 3 4
|
*plateau[i][j] = 0
ou
**plateau[i][j] = 0 ; |
Ca fait 2 jours que je tourne sur plein de tuto mais je n'arrive pas à m'en sortir.
Merci pour une explication !!!