以下代码在我的系统上产生分段错误.我无法弄清楚为什么.任何帮助,将不胜感激.
#include<stdio.h>
int main() {
char * a = "abc";
*a = 'c';
printf("%c\n", *a);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
该标准明确将此列为§J.2中的未定义行为:
- 程序试图修改字符串文字(6.4.5)
如果要将其复制到本地数组中,请执行以下操作:
char a[] = "abc";
Run Code Online (Sandbox Code Playgroud)
a
是堆栈上的数组,您可以自由地修改它.