C、鞋面分割错误



char *s1 = "emma";
char *s2 = s1;
s2[0] = toupper(s2[0]);
printf("%sn", s2);
printf("%sn", s1);

我一直在摆弄指针,但我不太明白为什么我会在这里出现分割错误。我知道toupper函数需要一个char,但字符串s2的第0个元素不是char吗?我知道这是一个指针,但它指向的是一个字符,对吧?这是怎么回事?

我不太明白为什么这里会出现分段错误。

代码试图修改字符串文本。这就是UB。复制一份。

UB:未定义的行为-可能有效,可能以明显或奇怪的方式失败。

相关内容

  • 没有找到相关文章

最新更新