相关疑难解决方法(0)

为什么在写入用"char*s"而不是"char s []"初始化的字符串时会出现分段错误?

以下代码在第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-strings segmentation-fault

277
推荐指数
10
解决办法
7万
查看次数

取消引用char指针会导致段错误

我正在使用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)

c segmentation-fault

0
推荐指数
1
解决办法
504
查看次数

标签 统计

c ×2

segmentation-fault ×2

c-strings ×1