每當我有一個函數,它接受一個C字符串,並希望它的值存儲鏈表裏面,我應該做這樣的...我的函數應該拷貝`char *` - 參數嗎?
void add(char* str)
{
node *n = malloc(sizeof(node));
n->value = str;
}
或者說...
void add(char* str)
{
node *n = malloc(sizeof(node));
char* copy = malloc(strlen(str)+1);
strcpy(copy, str);
n->value = copy;
}
在此先感謝。
無關,但我假設你的意思是'malloc(sizeof(* n))''malloc(strlen(str) +1)'。 –
@rob不同意第一個。糾正了第二個。謝謝。 – imacake
您正在分配一個大小爲「節點*」而不是「節點」的指針。你也可以使用'strdup'來複制字符串,而不是'malloc' +'strcpy' – Hasturkun