ciao a tutti,
ho iniziato a studiare da poco il linguaggio C pertanto premetto che il mio problema potrà sembrare stupido a molti di voi ma per imparare bisogna pur partire dal fondo.
Sto studiando le strutture dati e in questo momento sto cercando di imparare come funzionano le liste.
Sto realizzando un semplice programma che costruisce una lista e ne conta gli elementi mediante una funzione (vi posto il codice):
codice:
[list=1][*] #include <stdio.h>[*] #include <stdlib.h>[*][*] /*DICHIARAZIONE FUNZIONE*/[*] int conta();[*][*] int main(void)[*] { [*] int i, numero;[*][*] /*CREAZIONE DI UNA LISTA CONTENENTE I PRIMI 10 NUMERI PARI*/[*] typedef struct nodo[*] {[*] int value;[*] struct nodo *next;[*] }Nodo;[*][*] Nodo *p, *L;[*] [*] p = (Nodo *)malloc(sizeof(Nodo));[*] p->value = 2;[*] p->next = NULL;[*] L = (Nodo *)malloc(sizeof(Nodo));[*] L->value = 4;[*] L->next = NULL;[*] p->next = L;[*] for(i = 3; i <= 10; i++)[*] {[*] L->next = (Nodo *)malloc(sizeof(Nodo));[*] L = L->next;[*] L->value = 2 * i;[*] }[*] [*] numero = conta(p);[*][*] printf("Nella lista sono presenti %d elementi\n", numero);[*] return(0);[*] }[*][*] /*DEFINIZIONE DELLA FUNZIONE*/[*] int conta(Nodo *L)[*] {[*] int quanti = 0;[*] [*] while(L != NULL)[*] {[*] quanti++;[*] L = L->next;[*] }[*][*] return(quanti);[*] }[/list=1]
Quando vado a compilare gcc ritorna il seguente errore:
error: expected ')' before '*' token
alla riga 41.
Ho cercato ovunque ma non ce l'ho fatta a risolvere, spero che qualcuno possa aiutarmi.
Grazie