首页 > 解决方案 > 在c中使用链表通过引用传递问题

问题描述

我正在尝试创建一个新节点并将其添加到我的链接列表中,但是在函数内部我可以为新节点中的数据提供正确的值并将其分配给列表的头部,但回到 main 中,它不是保持价值。

主要的:

insertStart(&list, &displayNum);            
displayNum = 0;         
printUI(keypad, displayNum, total);         
result = 0;
printf("Node value outside of function: %d\n",*(list.head->data));

功能:

void insertStart(LinkedList * list, int* calcData)
{
    LinkedListNode* newNode;
    newNode = (LinkedListNode*)malloc(sizeof(LinkedListNode));
    newNode->data = calcData;
    newNode->next = list->head;
    list->head = newNode;
    printf("Node value inside function: %d\n", *(list->head->data));    
}

因此,当我在函数内打印值时,它是正确的;但是,它主要是 0。你能解释一下我做错了什么吗?

标签: clinked-listpass-by-referencesingly-linked-listc89

解决方案


推荐阅读