It received SIGSEGV on the 3rd line. But if I useCode:#include<stdio.h> int main(){ char *p = "Abc"; *p = 'a'; printf("%s\n", p); return 0; }, it goes well.Code:char p[] = "Abc";
So why I can't change *p when p is a pointer to a string? And, it's all right if I change it using gdb when I debug it.