Joh*_*Doe 0 c segmentation-fault
我正在使用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)
您没有检查返回值strchr,可能是NULL因为我们没有看到您的输入.
除此之外,在哪里以及如何buffer宣布?并非所有char*都可以修改,因为它们可以存储在二进制文件的数据段中(作为字符串文字).