Originariamente inviato da oregon
Riprendi la funzione InizializzaVettore e osserva la gestione degli indici per il vettore x
qui l'indice ogni volta viene incrementato di 1 fino ad arrivare ad n
codice:
void InizializzaVettore(archivio *x, unsigned int n){
unsigned int i=0, s=0;
for(i=0; i<n; i++){
printf("Numero posti disponibili del volo <%u> ? ", i);
scanf("%u", &s);
FLUSH;
(x+1)->posti_disponibili=s;
MakeNullList(&((x+1)->posti_acquistati));
MakeNullList(&((x+1)->posti_prenotati));
}
}
ora seguendo il ragionamento della funzione precedente, qui siccome gli do io l'indice v ed essendo x il mio vettore che punta al primo elemento dovrebbe essere così:
codice:
void Inserisci(archivio *x, tipobaseList a){
unsigned int v, c;
printf("Codice volo? ");
scanf("%u", &v);
FLUSH;
if(((x+v)->posti_disponibili)>0){
printf("1-prenota ");
printf("2-acquista ");
scanf("%u", &c);
FLUSH;
if(c==1) InserimentoPrenotazione((&((x+v)->posti_prenotati)), a);
if(c==2) InserimentoAcquisto((&((x+v)->posti_acquistati)), a);
((x+v)->posti_disponibili)--;
}else if(((x+v)->posti_disponibili)=0)(printf("\nNumero posti disponibili esaurito"));
}
ma si blocca subito dopo aver fatto la scelta tra prenota/acquista.