per quanto riguarda la prima funzione pensavo di fare così:
codice:
typedef struct vettore{ 
     unsigned int posti_disponibili; 
     list posti_acquistati; 
     list posti_prenotati; 
}archivio;  

do{ 
      printf("\nInserisci il numero di elementi del vettore: "); 
      scanf("%u",&n); 
      FLUSH;//è una funzione che pulisce il buffer 
}while(n<2); 

archivio=(struct vettore)malloc(n*sizeof(struct vettore));
è giusto?