<分区>
Possible Duplicate:
Getting Segmentation Fault
为什么这段代码会导致段错误?
char *text = "foo";
strcpy(text, "");
据我所知,第一行分配了一些内存(用于保存字符串“foo”),text
指向分配的内存。第二行将空字符串复制到 text
指向的位置。
这段代码可能没有多大意义,但为什么会失败?
<分区>
Possible Duplicate:
Getting Segmentation Fault
为什么这段代码会导致段错误?
char *text = "foo";
strcpy(text, "");
据我所知,第一行分配了一些内存(用于保存字符串“foo”),text
指向分配的内存。第二行将空字符串复制到 text
指向的位置。
这段代码可能没有多大意义,但为什么会失败?
最佳答案
只要您有字符串文字(在您的例子中为“foo”),程序就会将该值存储在内存的readonly 部分。
strcpy
想要修改该值,但它是只读的,因此出现段错误。
此外,text
应该是 const char*
,而不是 char*
。
关于c++ - strcpy() 导致段错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7508527/