Your code sets a
to a pointer to "abc"
, which is literal data that can't be modified. The Bus error occurs when your code violates this restriction, and tries to modify the value.
try this instead:
char a[] = "abc";
a[0] = 'c';
That creates a char array (in your program's normal data space), and copies the contents of the string literal into your array. Now you should have no trouble making changes to it.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…