通过指针更改C中的字符串文字?

ipk*_*iss 1 c string

可能重复:
为什么在写入字符串时会出现分段错误?

我有以下程序:

char *s     = "abcdf";
char s1[50] = "abcdf";

s1[0] = 'Q';   // Line 1
s[0] = 'P';    // Line 2
Run Code Online (Sandbox Code Playgroud)

为什么Line 1工作正常并Line 2导致程序崩溃?

Jos*_*phH 5

第2行指向可执行文件的只读数据部分,而在第1行中,程序s1使用给定的字符串初始化数组.它存储在堆栈中,您可以修改它.


归档时间:

查看次数:

2400 次

最近记录:

13 年,7 月 前