У меня следующая программа собирается в segfault.Я не могу понять, почему.Пожалуйста, помогите мне.
int main(){
char *a="String One", *b="String Two";
while(*a++=*b++);
return 0;
}
Для анализа я удалил цикл while и упростил его.Тем не менее это дает Segfault!
int main(){
char *a="String One", *b="String Two";
*a++=*b++;
return 0;
}
Но это работает.Я имею в виду нет segfault!
int main(){
char *a="String One", *b="String Two";
*a++;
*b++;
return 0;
}
Отвечая Лучиену:
На самом деле я пытался эмулировать strcpy.Что-то вроде этого.Теперь, когда я знаю, что строковый литерал предназначен только для чтения, я смог заставить это работать.Спасибо всем.
main(){
char x[10];
char *xx = x;
char *y = "Hello";
char *t=x, *f=y;
while(*xx++ = *y++);
printf(" %s ...%s \n",t,f);
}