YamIevenhere
16-11-2014, 17:18
Ho una struttura definita come:
struct item {
char *nome, *cognome, *cf;
struct item *next;
};
typedef struct item Item;
Il programma funziona se definisco la struct Item nella libreria item.h, se invece la definisco in Item.c mentre in Item.h scrivo solo "typedef struct item Item;" mi da come errore ricorrente nelle funzioni "dereferencing pointer to incomplete type".
Nello specifico l'errore viene evidenziato ogni volta che è coinvolto il puntatore al successivo, ad esempio, in questa funzione:
void Count(Item* head)
{
int i=0;
if (head==NULL)
{
printf("Empty.\n");
return;
}
while(head!=NULL)
{
i++;
head=head->next;
}
printf("%d elements.\n", i);
return;
}
l'errore si trova nella riga in cui scrivo "head=head->next".
Come potrei risolvere?
struct item {
char *nome, *cognome, *cf;
struct item *next;
};
typedef struct item Item;
Il programma funziona se definisco la struct Item nella libreria item.h, se invece la definisco in Item.c mentre in Item.h scrivo solo "typedef struct item Item;" mi da come errore ricorrente nelle funzioni "dereferencing pointer to incomplete type".
Nello specifico l'errore viene evidenziato ogni volta che è coinvolto il puntatore al successivo, ad esempio, in questa funzione:
void Count(Item* head)
{
int i=0;
if (head==NULL)
{
printf("Empty.\n");
return;
}
while(head!=NULL)
{
i++;
head=head->next;
}
printf("%d elements.\n", i);
return;
}
l'errore si trova nella riga in cui scrivo "head=head->next".
Come potrei risolvere?