Non può funzionare perchè, da quello che ricordo, la strcat() concatena una null terminated string con una seconda stringa. Quindi, aggiungere un carattere NULL alla fine della prima stringa è inutile, poichè la strcat si ferma appunto al primo che trova.
Attenzione all'allocazione della stringa "completa": devi prevedere un carattere in più per il terminatore di stringa... più anche un altro dato che ne vuoi aggiugnere uno tu in mezzo!
Io lavorerei con l'aritmetica dei puntatori. O passi alla strcat un puntatore alla nuova posizione della stringa "completa" oppure la implementi tu, copiando carattere per carattere.
Ciao.![]()