Ah scusa non sono abituato a pnsare ai container in c, per qualche arcano motivo mi ero dimenticato del titolo di questo topic e pensavo stessi scrivendo in c++.
Detto questo: è ancora peggio, se curr non è inizializzato si becca i dati che trova in Ram quando viene creato, quindi devi inizializzarlo per forza.
E poi semplicemente ripensa a cosa sia una funzione ricorsiva: nel momento in cui tu chiami la funzione ricorsiva, quello è un punto di uscita, quindi il codice successivo non verrá eseguito.
Pensa prima ad una semplice funzione ricorsiva come quella del fattoriale (fattela per esercizio) e poi applica i principi a questa (che sicuramente è più complessa)