Hola! si haces esto: j=longitud(cadena1); para que despues volves a sacar la longitud de la cadena1 con cadena1[longitud(cadena1)+1+i] = cadena2[i]; ???
Tenes que usar j como subindice de cadena1, y a medida que copia un caracter de cadena2 vas incrementando j, ejemplo:
Otra cosa la condicion del for no es la mas optima, lo que estas haciendo es llamar "n" veces a la funcion longitud, lo cual no es bueno; t conviene almcenar la longitud de cadena2 en una variable y listo(solo la llamas una vez). Ademas sino me equivoco deberia ser i<=longitud() ya q tenes que almacenar el '\0' de cad2
Saludos