Envoyé par
lecyberax
j'ai dans mon fichier .c la definition de ma structure ; ce qui suit:
BUG! j'avais oublié de sortir 'nombre'. J'ai corrigé mon post précédant.
Au fait ca veux dire quoi "dereferencing to incomplete type"
Littéralement "[tentative de ]déréférencement d'un type incomplet"
J'ai déjà donné l'explication.
Envoyé par
-ed-
Le compilateur dit qu'il ne peut déréférencer un pointeur sur une structure dont il ne connait pas les membres
Complément d'information.
En C on a le droit de définir une structure dite 'incomplète'. C'est à dire dont on connait le nom, mais pas les membres.
Avec ça, on a le droit de définir un pointeur
un paramètre pointeur :
void f (struct mystruct *p);
un élément de structure de type pointeur
1 2 3 4
| struct mystructx
{
struct mystruct *p;
}; |
on peut même définir une structure auto référencée (noeud de liste, d'arbre etc.):
1 2 3 4
| struct node
{
struct node *p_next;
}; |
C'est donc utile pour définir des interfaces. Mais le jour où il faut accéder aux membres, il faut connaitre le détail de la structure :
1 2 3 4 5 6
| struct mystruct
{
int a;
char *b;
...
}; |
Un exemple d'utilisation avancée :
http://emmanuel-delahaye.developpez.com/tad.htm
Partager