PDA

View Full Version : [C]dereferencing pointer to incom.. Problemi su lista


Honik
06-06-2009, 13:22
Salve ragazzi.. riscontro questo errore di compilazione.. non so dove andare a rintracciare il problema.. vi posto la parte di codice che penso sia interessata al problema..
l'errore si rifà a questa riga
if (strcmp(marca, pMarche->info.marca)==0)
che si trova in questa funzione
TipoListaMarche RicercaMarca(char *marca, TipoListaMarche pMarche){

while(pMarche!=NULL){
if (strcmp(marca, pMarche->info.marca)==0)
{
return pMarche;
}
pMarche=pMarche->next;
}

}

Il TipoListaMarche è cosi definito
typedef struct nodolistamarca{
TipoElemMarca info;
struct nodolistamarca *next;
}NodoListaMarca;

typedef struct NodoListaMarca *TipoListaMarche;

Grazie mille

Honik
07-06-2009, 00:34
secondo me è un'errore di derefenziamento di qualche puntatore.. ma non so proprio come poterlo risolvere!!

DanieleC88
07-06-2009, 08:34
Magari dire di che errore si tratta potrebbe essere d'aiuto. :p

ciao ;)

Honik
07-06-2009, 13:05
Dereferencing pointer to incomplete type..

era più o meno incluso nel titolo :D

DanieleC88
07-06-2009, 14:06
Ok, ora è chiaro. A vedere dalla definizione che hai postato, e cioè:
typedef struct nodolistamarca{
TipoElemMarca info;
struct nodolistamarca *next;
}NodoListaMarca;
ciò che succede è che definisci "NodoListaMarca" in modo tale che sia espanso in "struct nodolistamarca", ma poi subito dopo definisci:
typedef struct NodoListaMarca *TipoListaMarche;
che quindi risulta essere uno "struct struct nodolistamarca *"... qualcosa non torna. :D

Forse intendevi "struct nodolistamarca *"? :)
ciao ;)

Honik
07-06-2009, 14:52
Ok, ora è chiaro. A vedere dalla definizione che hai postato, e cioè:
typedef struct nodolistamarca{
TipoElemMarca info;
struct nodolistamarca *next;
}NodoListaMarca;
ciò che succede è che definisci "NodoListaMarca" in modo tale che sia espanso in "struct nodolistamarca", ma poi subito dopo definisci:
typedef struct NodoListaMarca *TipoListaMarche;
che quindi risulta essere uno "struct struct nodolistamarca *"... qualcosa non torna. :D

Forse intendevi "struct nodolistamarca *"? :)
ciao ;)

Accidenti :D quando la smetterò di fare errori stupidi.. ora è giusto
typedef NodoListaMarca *TipoListaMarche;
..
grazie mille