【发布时间】:2011-11-22 10:31:36
【问题描述】:
为什么这段代码会导致分段错误?
char *text = "foo";
strcpy(text, "");
据我了解,第一行分配了一些内存(保存字符串“foo”),text 指向分配的内存。第二行将一个空字符串复制到text 指向的位置。
这段代码可能没有多大意义,但为什么会失败?
【问题讨论】:
-
查看搜索结果。看他们!@#! stackoverflow.com/search?q=strcpy+segmentation+fault
-
最好的副本是什么?我找不到它。
-
它们并非完全重复,但错误通常是相同的。
-
我同意约翰·库格曼。移动以关闭复制。
-
@quasiverse:在问这个问题之前,我看到SO上有很多类似的问题,但几乎所有的问题都是相反的,即声明
char *text;而不分配内存。
标签: c++ c segmentation-fault strcpy