Ciao a tutti!
Devo scrivere un programma in linguaggio ANSI C che prenda in input il nome di un file contenente delle mosse di scacchi (per esempio BIANCO E5 E6) e che sposti queste mosse in una coda implementata come lista. Dopodichè devo contare il numero di mosse (cioè misurare la lunghezza della lista) e scrivere su un file output indicato dall'utente il numero di mosse fatte e i pezzi mangiati per il nero e per il bianco.
Il mio problema sono le funzioni append (inserimento in coda) e pop, oltre a quella della lunghezza della lista.
L'errore che mi dà è sempre lo stesso: "request for member ‘next’ in something not a structure or union"
perciò posto solo una delle funzioni così da alleggerire la visionespero mi possiate dare una mano, io non ne vengo fuori!
spero di aver scritto nell'area giusta, scusatemi in caso!codice:#include<stdio.h> #include<stdlib.h> #include<malloc.h> /*apro il file input*/ char buf[10000]; FILE*f; int len; char finput; char foutput; int input() { FILE *f; printf("inserisci il nome del file input\n"); scanf("%c", &finput); f=fopen("%c", "r"); /* se volessi stamparlo a video dovrei aggiungere: while (fscanf(f,"%s",buf)>0) printf("%s", buf);*/ fclose(f); return 0; } /*leggo input e implemento la coda come una lista*/ /* Implemento il tipo liststring*/ struct liststring { char *str; struct liststring* next; }; typedef struct liststring** Liststring; /* Inserimento in coda*/ int append(Liststring *l, char *elem) { if(*l==NULL){ (*l) = (Liststring) malloc(sizeof(struct liststring)); if(*l){ (*l)-> next = NULL; (*l)-> str = elem; return 1; } else return 0; } else return append(((*l)-> next), elem); }

spero mi possiate dare una mano, io non ne vengo fuori!
Rispondi quotando
più probabilmente quello che volevi fare era ricevere un parametro di tipo Liststring (ovvero un doppio puntatore a struct liststring).
