Il problema è quelo che ti ha indicato Fox82: in c tutti i parametri sono passati per valore: se vuoi modificare un parametro devi passare non il parametro stesso, ma il puntatore al parametro, il quale puntatore sarà immodificabile perchè passato per valore come sempre, ma potrai modificare la variabile da esso puntata. Nel tuo esempio tu vuoi modifiare una stringa, o meglio un puntatore a char, e passi il puntatore stesso, di cui la funzione avrà semplicemente una copia; se lo vuoi modificare in quel modo devi passare il puntatore a puntatore. Oppure puoi copiare a mano la stringa nelle locazioni puntate dal parametro, ma in questo caso devi allocare lo spazio per la stringa prima della chiamata della funzione, e poi copiare carattere per carattere la stringa nelle locazioni puntate dal parametro: in questo caso il parametro (cioè il puntatore a char) non è modificato ma sono modificate le locazioni a cui punta, come al solito. In questo caso mi pare che puoi utilizzare una funzione di libreria per la copia di stringhe.