Era sbagliata la copiaChiave, a=temp era un assegnamento solo della variabile formale passata alla funzione, ho risolto usando una strcpy.