Non ho letto il codice ma molto probabilmente in qualche punto assegni ad un char * un'altro char * che invece dovresti copiare con strcpy...