#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);
}
Выход ошибки: Программный сигнал SIGSEGV, ошибка сегментации. 0x000000000040055d в xstrcat (s1 = 0x400696 «place», s2 = 0x400696 «place») at strcat.c: 23 23 * s1 = * s2;Моделирование strcat в c
Я не могу писать в этой памяти. Может кто-нибудь рассказать, почему я получаю эту ошибку. ?
, потому что у вас нет этой памяти. – user93353
Должно быть много дубликатов для этого ... – hmjd
http://c-faq.com/malloc/malloc2.html – Kevin