【发布时间】:2020-03-01 07:57:00
【问题描述】:
int main()
{
char *p = "I like C++";
strcpy(p, "John Smith");
std::cout << p << std::endl;
EXIT_SUCCESS;
}
如题,为什么会导致分段错误
【问题讨论】:
-
网站上应该有类似的问题和答案。我会努力寻找他们。它的要点是“我喜欢 C++”是一个字符串文字(它是常量),
p指向它。尝试修改它是未定义的行为,因此会崩溃。如果你想要一个可以修改的字符数组,你想将它声明为char p[] = "I like C++"; -
因为除了奇怪和不稳定的操作系统之外,您无法修改 String-Literal。
-
这能回答你的问题吗? can't modify char* - Memory access violation
-
这段代码格式不正确;如果您没有看到编译错误,请调整编译器设置,因为您正在浪费时间尝试运行非法代码
标签: c++