以下代码在第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测试.
我正在使用strchr在缓冲区中找到=遇到的点.然后我正在改变那个相同的角色而不是a M.我在尝试执行此操作的行中遇到了段错误.
这是完整的代码:
int main(void){
char *buffer = "Name=Tom"
char *pointer;
pointer = strchr(buffer,'=');
*pointer = 'M'; <--------- Segfault Occurs here
return (0);
}
Run Code Online (Sandbox Code Playgroud)
我在segfault中遇到以下错误:
Process terminating with default action of signal 11 (SIGSEGV)
Bad permissions for mapperd region at addresss .....
Run Code Online (Sandbox Code Playgroud)