tableau de structure à 2dim --> cannot convert 'tileset*' to 'tileset**' for argument '1'
Bonjour à tous,
j'essai de developper un jeu de plateforme mais j'ai une erreur à franchir d'abord. Je voudrais creer un tableau à 2 dimentions d'une structure concernant mes tiles. Mais malheuresement j'obtiens l'erreur suivante :
cannot convert 'tileset*' to 'tileset**' for argument '1' to 'void test(tileset**)'.
J'ai mit mon code pour bien visualiser le soucis.
Est-ce qu'on peut m'aider svp?
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
| #include <iostream>
#include <iomanip>
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
using namespace std;
struct tileset {
int type;
int etat;
int plan;
};
tileset tile[50];
void test(tileset *tile[])
{
cout << tile[0]->type << "\n";
}
int main()
{
test(&tile);
return 0;
} |
oui mais en fait c'est pour un tableau à 2 dimentions
Merci dalfab,
mais en fait je doit le faire pour un tableau à 2 dimentions. Si je rajoute [] au tile[] ca me ressort encore une erreur.
J'espere que tu lira ce message.
Citation:
Envoyé par
dalfab
Bonjour,
tile et &tile sont la même chose (seul cas pour les tableaux), car un tableau est immédiatement transformé en pointeur.
Ici il faut recevoir un pointeur (qui sera utilisable comme un tableau)
par au choix :
Code:
1 2 3 4 5 6 7 8
| void test(tileset tile[])
{
cout << tile[0]->type << "\n";
}
void test(tileset *tile)
{
cout << tile[0]->type << "\n";
} |
Les deux fonctions sont en fait les mêmes (on ne peut pas passer en paramètre un tableau)
oui mais je veux passer ce tableau de structure tileset tile[50][50] à mes fonctions
merci de ta reponse mais ce n'est pas encore ca.
Moi j'ai deja le tableau de structure tileset tile[50][50] (qui marche) mais j'ai besoin de le faire passer en argument dans mes fonctions. Je ne veux pas de variable globals dans mon jeu...
Dans le code suivant ca plante car il y a plus d'une dimention.
Code:
1 2 3 4
| void test(tileset *tile)
{
cout << tile[0][0].type << "\n";
} |
Ce dont j'ai besoin c'est de faire passé en argument ce tableau de structure.
Citation:
Envoyé par
rnr72
Bonjour solarquantum2,
si je comprends bien tu cherches à avoir un tableau à 2 dimensions pour les coordonnées de tes tuiles.
Il existe des astuces pour travailler avec un tableau 1d avec des coordonnées 2d
Code:
1 2 3 4 5 6 7 8 9 10 11
|
#define TAILLE 50
const int tailleTableau = TAILLE * TAILLE;
int x = 15
int y = 2;
Tileset tile[tailleTableau];
tile[x + y*TAILLE]; |
Mais tu constatera vite que ce n'est pas ton seul problème, tes structures ne sont pas initialisées donc ton tableau est remplit de structures vides.
P.S.: le #define soit être placé avant le main()