#include<stdio.h>
int main()
{
char *name = "Vikram";
printf("%s",name);
name[1]='s';
printf("%s",name);
return 0;
}
在终端上没有任何输出,只会得到段错误。但是当我在GDB中运行它时,我得到以下结果 -
Program received signal SIGSEGV, Segmentation fault.
0x0000000000400525 in main () at seg2.c:7
7 name[1]='s';
(gdb)
这意味着程序在第7行收到了SEG错误(显然我无法写入常量字符数组)。那么为什么第6行的printf()没有执行?