每当我有一个函数,它接受一个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