可能重複:
What is the difference between char a[] = 「string」 and char *p = 「string」?的memcpy堆棧內存
是什麼堆內存的使用上堆棧內存的memcpy VS之間的區別? 下面的代碼工作在Tru64但段錯誤的LINUX
char * string2 = " ";
(void)memcpy((char *)(string2),(char *)("ALT=---,--"),(size_t)(10));
第二個版本在Linux上工作
char * string2 = malloc(sizeof(char)*12);
(void)memcpy((char *)(string2),(char *)("ALT=---,--"),(size_t)(10));
有人可以解釋在Linux上段錯誤?
良好閱讀:[是什麼\ [\] =「字符串」與char * p =「字符串」字符之間的區別?(HTTP://計算器。 com/questions/9460260/char-a-string-and-char-p-string之間的區別是什麼) – 2012-03-29 10:26:44
Stack:不是你想的那樣。 – tbert 2012-03-29 10:48:34
您的演員陣容完全濫用,使代碼幾乎無法閱讀。沒有一個是必要的或者甚至是有用的。同樣'sizeof(char)'被定義爲一個。 'malloc'計算大小以'char'的大小來分配。 – 2012-03-29 11:34:38