相关疑难解决方法(0)

执行printf()和分段错误

#include<stdio.h>

int main()
{
    char *name = "Vikram";
    printf("%s",name);
    name[1]='s';
    printf("%s",name);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

终端上没有打印输出,只是出现分段故障.但是当我在GDB中运行它时,我得到以下 -

Program received signal SIGSEGV, Segmentation fault.
0x0000000000400525 in main () at seg2.c:7
7       name[1]='s';
(gdb) 
Run Code Online (Sandbox Code Playgroud)

这意味着程序在第7行接收SEG故障(显然我不能在常量字符数组上写入).那么为什么不执行第6行的printf()?

c printf segmentation-fault

22
推荐指数
3
解决办法
4万
查看次数

分段故障问题

我观察到有时在C程序中,如果我们printf在分段错误之前的任何地方都有代码,它就不会打印.为什么会这样?

c io segmentation-fault unbuffered-output

10
推荐指数
3
解决办法
3486
查看次数

标签 统计

c ×2

segmentation-fault ×2

io ×1

printf ×1

unbuffered-output ×1