Non sono sicuro tu abbia inserito quell'istruzione nel punto giusto, prova così...
codice:#include <stdio.h> #define MAX 10 struct automobili { char marca[25]; char modello[25]; int unita; }; struct automobili auto_array[MAX]; int num_auto=0; int Menu(); int Inserimento(int); void Visualizzazione(int, struct automobili *); int main(){ int scelta=-1; while (scelta!=0) { scelta=Menu(); if (scelta==1){ num_auto = Inserimento(num_auto);} else if(scelta==2) Visualizzazione(num_auto, auto_array); } printf("\nArrivederci\n"); } int Menu(){ int n; do{ printf("\t-----------------------------------\n"); printf("\t-------------Archivio--------------\n"); printf("\t-----------------------------------\n\n"); printf("\t 1. Inserire una nuova autovettura\n"); printf("\t 2. Visualizzare archivio\n"); printf("\t 0. Uscire\n\n"); printf("\t Cosa vuoi fare?\n \t>>"); scanf("%d",&n); }while (n!=0 && n!=1 && n!=2); return n; } void Visualizzazione(int pos, struct automobili *p){ int i; //contatore auto char pausa; if (pos==0) { printf("\nIn questo momento non ci sono macchine in garage.\n\n"); scanf("%c", &pausa); } else{ for(i=0; i<pos; i++){ printf("\n %d° macchina:\n",i+1); printf("\tMarca:\t %s", p->marca); printf("\n\tModello: %s", p->modello); printf("\n\tUnità : %d \n", p->unita); p++; scanf("%c", &pausa); } printf("\n\tPremi un tasto per tornare al menu\n\n\n\n"); scanf("%c", &pausa); } } int Inserimento(int pos){ char pausa; if (pos<MAX) { printf("\n Inserire i dati della nuova auto\n"); printf("\tMarca:"); while(getchar()!='\n'); fgets(auto_array[pos].marca,25,stdin); printf("\n\tModello:"); fgets(auto_array[pos].modello,25,stdin); printf("\n\tQuante:\t\t"); scanf("%d", &auto_array[pos].unita); pos++; printf("\n\tPremi un tasto per tornare al menu\n"); scanf("%c", &pausa); return(pos);} else{ printf("Errore, l'archivio è pieno!"); scanf("%c", &pausa); return(pos);} }

Rispondi quotando