【发布时间】:2013-05-17 13:42:12
【问题描述】:
昨天我在使用自制的“strcpy”函数时遇到了一点麻烦。它现在虽然有效,但我有点困惑!
char* a = "Hello, World!"; //Works
char b[] = "Hello, World!"; //Works also
strcpy(a, "Hello!"); //Segmentation fault
strcpy(b, "Haha!!"); //Works..
区别在哪里?为什么 char 指针会导致“分段错误”?
为什么这甚至行得通? :
char* a = "Haha"; //works
a = "LOL"; //works..
【问题讨论】:
-
阅读 C 常见问题的这一部分:c-faq.com/aryptr/aryptr2.html
-
我删除了 C++ 标签,因为这是关于 C 子集的(即使在那里你也不会自己实现
strcpy)。 -
@honk 是的,有道理