Come dice il titolo: come faccio a passare un array di struttura ad una funzione?
Ho scritto questo codice ma non funziona.
codice:#include <stdio.h> #include <stdlib.h> #include <string.h> #define LUNGHEZZA_MASSIMA 25 typedef struct{ char Cognome[LUNGHEZZA_MASSIMA+1], Nome[LUNGHEZZA_MASSIMA+1]; int Eta; }Tipo; void mostra (struct array[], int i); int main(void) { Tipo DatiPersona[9999]; int i = 0; char c; FILE *fp; fp = fopen("file.txt","r+"); do{ fscanf(fp, "%s %s %d", DatiPersona[i].Cognome, DatiPersona[i].Nome, &DatiPersona[i].Eta); i+=1; } while((c = getc(fp)) != EOF); char codice; for( ;; ){ printf("\n"); printf("Cosa desidera fare?\n"); printf("Vedere l'elenco(m)\n");"); printf("Esci (q)\n"); scanf("%c", &codice); while (getchar() != '\n'); switch (codice){ case 'm': mostra(DatiPersona[9999], i); break; case 'q': return 0; default: printf("Codice errato\n"); } } fclose(fp); } void mostra (struct array[], int i){ int z; char c; printf("\n"); for(z=0; z<i-1;z++){ printf("| %d | %s | %s | %-4d |\n",z+1, DatiPersona[z].Cognome, DatiPersona[z].Nome, DatiPersona[z].Eta); }; }codice:ERRORI dati.c:12: error: array type has incomplete element type dati.c:12: warning: ‘struct array’ declared inside parameter list dati.c:12: warning: its scope is only this definition or declaration, which is probably not what you want dati.c:32:47: warning: missing terminating " character dati.c: In function ‘main’: dati.c:32: error: missing terminating " character dati.c:38: error: type of formal parameter 1 is incomplete dati.c: At top level: dati.c:49: error: array type has incomplete element type dati.c:49: warning: ‘struct array’ declared inside parameter list dati.c: In function ‘mostra’: dati.c:49: error: parameter name omitted dati.c:57: error: ‘DatiPersona’ undeclared (first use in this function) dati.c:57: error: (Each undeclared identifier is reported only once dati.c:57: error: for each function it appears in.)

Rispondi quotando