probleme avec une structure contenant un tableau
bonjour à tous,
je débute ne c, et je développe un sokoban d'entrainement. La partie logique est fonctionnelle et je m'attaque maintenant à la partie graqhique.
Je créé pour cela une structure de tuile pour créé une map.
voici le code :
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
| #include <stdio.h>
#include <stdlib.h>
#include "SDL/SDL.h"
#include "constantes.h"
typedef struct S_Tile
{
SDL_Surface *image;
int symbole;
}S_Tile;
typedef struct S_Map
{
S_Tile map[HEIGHT_ARRAY][WIDTH_ARRAY];
}S_Map;
S_Map* initMap(void);
void displayMap(const S_Map *level);
int main()
{
S_Map *level;
level=initMap();
displayMap(level);
return EXIT_SUCCESS;
}
S_Map* initMap(void)
{
S_Map *initLevel={NULL};
int i, j;
for (i=0; i<HEIGHT_ARRAY; i++)
{
for (j=0; j<WIDTH_ARRAY; j++)
{
initLevel->map[i][j].image=NULL;
}
}
return initLevel;
}
void displayMap(const S_Map *levelMap)
{
int i, j;
for (i=0; i<HEIGHT_ARRAY; i++)
{
for (j=0; j<WIDTH_ARRAY; j++)
{
printf("map : initlevel.map[%d][%d]=%p\n",
i,j,levelMap->map[i][j].image);
}
}
} |
Pour des raison de faciliter, le fait des allocation statique de tableau.
HEIGHT_ARRAY et WIDTH_ARRAY valent 12.
A la compilation, aucun message d'avertissement ni à l'édition de lien.
Par contre à l'execution, je reçoit un segment fault avec GCC 4.2 sur ubuntu.
Quelqu'un pourrait-il m'expliquer le pourquoi ?
Merci d'avance