Antes de pedir que se introduzca la cadena 2, debes quitar el carácter de nueva línea del buffer de entrada, podrías hacerlo así:
Código:
scanf("\n%[^\n]",cadena2);
Para más información, te pongo el URL a un post de otra persona que tenía un problema con el mismo caso:
http://www.forosdelweb.com/f96/problema-con-este-codigo-607350/
PD: Hay un detalle que le veo al código:
Código:
point1=(char*)malloc(sizeof(char));
point2=(char*)malloc(sizeof(char));
if (point1==NULL)
{printf("error");
return -1;}
if (point2==NULL)
{printf("erorr2");
return -2;}
point1=cadena1;
point2=cadena2;
No es necesario asignar memoria con malloc cuando vas a usar los apuntadores para apuntar a una variable ya existente, que es cuando asignas point1=cadena1 y point2=cadena2.
así la memoria que creaste con malloc la estás perdiendo, me explico con más detalle:
point1=(char*)malloc(sizeof(char)); // En este punto point1 pasa a apuntar a un sector de memoria asignado por medio de malloc.
point1=cadena1; // Ahora se cambia y point1 pasa a apuntar al sector de memoria donde está almacenado el contenido de cadena1.
Espero haberme explicado con claridad.