昨天我對自制的「strcpy」函數有點麻煩。它現在雖然工作,但我有點困惑!陣列和指針之間的區別
char* a = "Hello, World!"; //Works
char b[] = "Hello, World!"; //Works also
strcpy(a, "Hello!"); //Segmentation fault
strcpy(b, "Haha!!"); //Works..
差異在哪裏?爲什麼字符指針會導致「分段錯誤」?
爲什麼這甚至可以工作? :
char* a = "Haha"; //works
a = "LOL"; //works..
我刪除了C++標記,因爲這是關於C子集(甚至在那裏你不會自己實現'strcpy')。 –
閱讀C常見問題的這一部分:http://c-faq.com/aryptr/aryptr2.html – Claudio
@honk是的,這是有道理的 –