Problème d'affectation entre les valeurs de deux fonctions
J'ai une erreur de compilation d'affectation d'adresse je pense du genre:
lvalue required as left operand of assignment, à la ligne:
Code:
resultat->hauteur(i,j) = resultat->Hauteur_Terrain(image,i,j, PTS_MAX, PTS_MAX);
Voici le code
Dans le fichier Terrain.cpp
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
| double Terrain::Hauteur_Terrain(SDL_Surface *image, int i, int j, int maxi, int maxj)
{
.....
.....
}
Terrain* Init_Terrain()
{
....
...
Terrain* resultat;
int i,j;
/* On charge laa heightmap */
image = SDL_LoadBMP("data/heightmap.bmp");
if(image==NULL)
return NULL;
resultat = new Terrain;
if(resultat==NULL)
{
printf("Malloc du terrain a echoue\n");
return NULL;
}
for(i=0;i<PTS_MAX;i++)
{
for(j=0;j<PTS_MAX;j++)
{
resultat->hauteur(i,j) = resultat->Hauteur_Terrain(image,i,j, PTS_MAX, PTS_MAX);
}
}
.....
} |
Dans le fichier Terrain.h
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| //nombre maximum de points dans le terrain
#define PTS_MAX 32
class Terrain
{
public:
Terrain();
~Terrain();
double Hauteur_Terrain(SDL_Surface *image,int i,int j, int x, int y);
......
.....
double hauteur(int i,int j);
...
}; |
Voilà, Pourriez-vous m'aider à corriger l'erreur, car j'ai essayé de la corriger, mais l'erreur persite toujours.
Balises code ajoutées, merci d'y penser à l'avenir
C'est de cette façon que j'alloue:
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
| /* Initialiser le terrain */
Terrain* Init_Terrain()
{
SDL_Surface *image,
*terrain_txtr,
*neige;
int i,j,tmpi,tmpj;
double r,g,b;
Terrain* resultat;
float perc[3];
/* On charge le heightmap */
image = SDL_LoadBMP("Data/heightmap.bmp");
if(image==NULL)
return NULL;
resultat = new Terrain;
....
....
} |
Pour la position
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| /****************************************************/
int Transparent_elements::load_transparent_file()
{
int ok=0;
int N_0=0,N_1=0,N_2=0,N_3=0;
ok += get_size_element(SAVE_TREE_1_PATH,&N_0);
ok += get_size_element(SAVE_TREE_2_PATH,&N_1);
N_total=N_0+N_1+N_2+N_3;
//allocation:
position = new float[3*N_total];
} |
C'est de cette façon que j'alloue resultat et position. Je n'alloue pas resultat->hauteur