Je ne vois pas mon erreur !!

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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
 
struct tas
{
  vext vecteur;
  int dernier_element;
  int (*comparaison) (void *, void *);
  void (*liberer)(void *);
  void (*afficher)(void *);
  bool inverser;
};
/*
dans vext.c
 
struct vext 
{
    void **vecteur;
    unsigned int taille_physique;
    unsigned int taille_rallongement;
    unsigned int nombre_d_elements;
    void (*liberer)(void *);
    void (*afficher)(void *);
};
*/
 
bool
existeGauche(vext self, int i)
{
  int gauche= 2*i+1;
  return (self->vecteur[gauche] != NULL);
}
bool
existeDroit(vext self, int i)
{
  int droit= 2*i+2;
  return (self->vecteur[droit] != NULL);
}
 
static void 
reorganiserDescendant(tas self, int i)
{
  int pere= i; 
  int gauche = 2*i+1;
  int droit = 2*i+2;
  if (existeGauche(self->vecteur,pere))
    {
      int min = gauche;
      if(existeDroit(self->vecteur,pere))
	{
	  if (self->comparaison( vext_lire(self->vecteur,gauche),vext_lire(self->vecteur,droit)) < 0)
	    {
	      min=droit;
	    }
	}
 
      if(self->comparaison( vext_lire(self->vecteur,pere),vext_lire(self->vecteur,min)) < 0)
	{
	  echanger(self,pere,min);
	  reorganiserDescendant(self,min);
	}
    }
}
Le compilateur m'affiche:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
tas.c: In function «existeGauche":
tas.c:103: erreur: déréférencement d'un pointeur de type incomplet
tas.c:104: attention : control reaches end of non-void function
tas.c: In function «existeDroit":
tas.c:109: erreur: déréférencement d'un pointeur de type incomplet
tas.c:110: attention : control reaches end of non-void function
Quel est mon problème?