Aggiungo anche questo: attento all'utilizzo degli operatori. Il modo in cui hai allocato la stringa "completa" non è del tutto corretto (o almeno non lo è in generale):
codice:
char *completa =(char*)malloc( strlen(prima) + strlen(seconda) * sizeof(char) );
equivale a questo
char *completa =(char*)malloc( strlen(prima) + (strlen(seconda) * sizeof(char)) );
per cui, dovresti utilizzare le parentesi:
codice:
char *completa =(char*)malloc( (strlen(prima) + strlen(seconda)) * sizeof(char) );
inoltre, come detto prima, devi aggiungere lo spazio per i due caratteri NULL:
codice:
char *completa =(char*)malloc( (strlen(prima) + strlen(seconda) + 2) * sizeof(char) );
Ciao.