#include<stdio.h>
main()
{
    char *str1="beautiful";
    char *str2="place";
    xstrcat(str1,str2);
}
xstrcat(char *s1,char *s2)
{
    char *temp;
    temp=s1;
    while(*s1!='\0')
    {
        s1++;
    }
    while(*s2!='\0')
    {
        s1++;
        *s1=*s2;
        s2++;
    }
    s1++;
    *s1='\0';
    printf("\n%s",temp);
}
Error output: Program received signal SIGSEGV, Segmentation fault. 0x000000000040055d in xstrcat (s1=0x400696 "place", s2=0x400696 "place") at strcat.c:23 23 *s1=*s2;
I am not able to write in that memory. Can anyone please tell why i am getting this error. ?
 
     
    