【发布时间】:2012-01-08 07:01:27
【问题描述】:
尝试修改字符串文字会导致未定义的行为:
char * p = "wikipedia";
p[0] = 'W'; // undefined behaviour
防止这种情况的一种方法是将其定义为数组而不是指针:
char p[] = "wikipedia";
p[0] = 'W'; // ok
为什么char* 会导致未定义的行为,而char[] 不会?
【问题讨论】:
-
这是一个问题,还是您在发表评论?
-
问题在 ... 问题中 :-) 我同意这有点粗制滥造,但是嘿...
-
我已投票决定重新打开它。问题在标题中。我已经对其进行了编辑,因此实际问题在正文中。 (不过,它很可能是重复的。)
标签: c string char undefined-behavior