【发布时间】:2018-04-05 11:46:47
【问题描述】:
当这是一个 void 结构时,我如何链接一个链表,我会举个例子,
struct tmpList *addToken2TmpList(struct tmpList *headTmpList, char *token)
{
struct tmpList *tokenNode = (struct tmpList *)malloc(sizeof(struct tmpList));
tokenNode->data = token;
tokenNode->next = NULL;
return cocatenateNodes((struct tmpList *)tokenNode, (struct tmpList *)headTmpList);
}
void *cocatenateNodes(void *node, void *headNode)
{
void *tmp = headNode;
if (headNode == NULL)
{
headNode = node;
}
else
{
while (tmp->next != NULL)
{
tmp = tmp->next;
}
tmp->next = node;
}
return headNode;
}
编译失败,无法识别tmp->next,如何解决?
【问题讨论】:
-
为什么要处理
void*而不是struct tmpList*? -
在引用 void 指针时,您必须在强制转换的帮助下告诉编译器实际结构。 void 只是一个指针。
-
能否请您发布
tmplist的定义?又为什么要处理成void*?
标签: c linked-list