Intanto un paio di considerazioni ...
nLibri va azzerata all'inizio con
nLibri=0;
altrimenti il suo valore non è determinato.
In secondo luogo, non è opportuno usare la parola new come parametro degli argomenti delle funzioni perché i compilatori C++, naturalmente, non lo "digeriscono". Usa nuovoLibro o nuovo
Per ultimo, il problema mi sembra più a monte dato che non sono riuscito ad inserire neanche un libro senza avere un errore. Il problema è nell'uso del puntatore
inizio
e della prima malloc. A cosa ti serve allocare un primo elemento se non hai ancora fatto inserimenti? Quel puntatore dovrebbe essere semplicemente
Libro *inizio = NULL;