Dato che devi modificare il valore del puntatore iniziale, lo devi passare, a sua volta, per puntatore. Quindi devi usare un doppio puntatore con tutto quello che ne consegue

void nuovoLibro(Libro **inizio, int nLibri)
Io userei un reference a puntatore.
codice:
void nuovoLibro(Libro *&inizio, int nLibri)