【发布时间】:2016-10-01 14:44:22
【问题描述】:
谁能帮我理解使用链表的空指针。
我有:
struct listNode
{
int nodeValue;
struct listNode * next;
};
typedef struct listNode listNode;
仅适用于整数。如果我将 int nodeValue 更改为 void *nodeValue,我将如何使用 void 指针将值发送到我的链表中?
例如,我有一个添加到前面的功能:
void addFront(listNode *L, int number);
它接受一个 listNode 和一个数字。
如果它是一个 void* 指针,我是否只需将签名更改为:
void addFront(listNode *L, void* value);
在我使用整数的主函数中,我有类似的东西:
int main(void)
{
listNode *list;
list = createList();
for (int x = 0;x < 8;x++)
{
addFront(list,x);
}
return(0);
}
其中 createList 定义为:
listNode *createList()
{
listNode *anyNode;
anyNode = malloc(sizeof(listNode));
anyNode->next = NULL;
return anyNode;
}
listNode *initNode(int number)
{
listNode *newNode;
newNode = malloc(sizeof(listNode));
newNode->nodeValue = number;
newNode->next = NULL;
return(newNode);
}
为了使列表更通用,我如何使用 void* 而不是声明整数来传递整数。
【问题讨论】:
标签: c list generics dynamic dynamic-arrays