Alexgd
16-01-2019, 16:02
Ho un problema con questo semplice esercizio sulle liste. In pratica non fa altro che creare una lista e andare a inserire in ogni nodo un carattere preso da una stringa in input.. L'errore è alla riga 21 ed è:
21|error: dereferencing pointer to incomplete type 'ELEMENT {aka struct lista}
Vi lascio qui il codice:
#include <stdio.h>
#include <stdlib.h>
struct list{
char d;
struct lista *next;
};
typedef struct lista ELEMENT;
typedef ELEMENT *LINK;
LINK array_to_list(char []);
int main()
{
char c_array[] = "questa e' una stringa di prova!";
LINK testa,ptr;
testa = array_to_list(c_array);
ptr = testa;
while(ptr != NULL)
{
putchar(ptr -> d); //<-- QUI C'E' L'ERRORE
ptr = ptr -> next;
}
puts("");
}
LINK array_to_list(char s[]){
LINK testa;
if (s[0] == '\0') return NULL;
else{
testa = malloc(sizeof(ELEMENT));
testa -> d = s[0];
testa -> next = array_to_list(s+1);
return testa;
}
}
21|error: dereferencing pointer to incomplete type 'ELEMENT {aka struct lista}
Vi lascio qui il codice:
#include <stdio.h>
#include <stdlib.h>
struct list{
char d;
struct lista *next;
};
typedef struct lista ELEMENT;
typedef ELEMENT *LINK;
LINK array_to_list(char []);
int main()
{
char c_array[] = "questa e' una stringa di prova!";
LINK testa,ptr;
testa = array_to_list(c_array);
ptr = testa;
while(ptr != NULL)
{
putchar(ptr -> d); //<-- QUI C'E' L'ERRORE
ptr = ptr -> next;
}
puts("");
}
LINK array_to_list(char s[]){
LINK testa;
if (s[0] == '\0') return NULL;
else{
testa = malloc(sizeof(ELEMENT));
testa -> d = s[0];
testa -> next = array_to_list(s+1);
return testa;
}
}