Nel programma che hai postato ci sono diversi errori di concetto. Conviene che prima capisci bene la differenza tra il passare variabili per valore e per riferimento. Se tu definisci una funzione in questa maniera:
Codice:
void ins_dati (int i,int riemp,Biblio libreria[]);
stai passando i e riemp per valore. Questo significa che all'interno della funzione ins_dati le variabili i e riemp sono solo delle copie di quelle che sono nel main, il cui valore non viene affatto modificato ad ins_dati. Quindi, in particolare, la variabile riemp non è valorizzata quando chiami la funzione lett_dati.