déréférencement d'un pointeur de type incomplet
Je ne vois pas mon erreur :evilred:!!
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 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:
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?