bonjour a tous,

j'ai une fonction free qui provoque une segmentation fault.
Qu'en pensez vous ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
typedef struct S_BufferTile
{
    SDL_Surface *image;
    enum tiles tileSymbol;
}S_BufferTile;
 
typedef struct S_BoxTile
{
  S_BufferTile box;
  int xBoxPos;
  int yBoxPos;
  int state;
}S_BoxTile;
 
int main()
{
   S_BoxTile *boxes;/*localisation des caisses dans le plateau*/
   boxes=initBox();/*cree un tableau de caisses*/
....
   freeBoxes(boxes);
...
 return EXIT_SUCCESS;
}
 
S_BoxTile* initBox(void)
{
  /*initialisation des caisses du jeux*/
  S_BoxTile *boxes=(S_BoxTile*)malloc(MAX_BOX_LEVEL*sizeof(S_BoxTile));
 
  int i;
  for (i=0; i<MAX_BOX_LEVEL; i++)
    {
      boxes[i].box.image=NULL;
      boxes[i].box.tileSymbol=0;
      boxes[i].xBoxPos=0;
      boxes[i].yBoxPos=0;
    }
  return boxes;
 
void freeBoxes(S_BoxTile *boxes)
{
  /*libere les ressources allouee aux boites*/
  printf("boxes dans freeboxes=%p\n",boxes);
  free(boxes);
  boxes=NULL;
}
je ne comprends pas le pourquoi.