以下代码在第2行接收seg错误:
char *str = "string";
str[0] = 'z'; // could be also written as *str = 'z'
printf("%s\n", str);
Run Code Online (Sandbox Code Playgroud)
虽然这非常有效:
char str[] = "string";
str[0] = 'z';
printf("%s\n", str);
Run Code Online (Sandbox Code Playgroud)
经过MSVC和GCC测试.
可能重复:
C/C++ Char指针崩溃
char *p = "atl";
char c;
c = ++*p; //crashing here
Run Code Online (Sandbox Code Playgroud)
为什么会崩溃?
我知道不应该为数据创建指针增量的内存.