如何解决我的代码中出现的valgrind问题?

问题描述 投票:0回答:1

下面是我的代码,它是针对一个双重链表的,我遇到的问题在此函数中,它的意思是:使用大小为8的未初始化值在0x400C71:append_linked_list(linked_list.c:83)和,大小为8的无效写入在0x400c71:append_linked_list(linked_list.c83)

Node *append_linked_list(LinkedList *list, void *data)
{   

    Node *tailnode;

    if (list == 0)
    {
        fprintf(stderr, "Warning: list is empty.");
        printf("\n");
        return 0;
    }
    else 
    {  
        tailnode = (Node *)malloc(sizeof(Node));
        tailnode -> data = data;
        tailnode -> next = 0;
        tailnode -> prev = list -> tail;
        (list -> tail) -> next = tailnode;
        list -> tail = tailnode; 
    }

    return tailnode; 
}

第83行是

(list -> tail) -> next = tailnode;
c valgrind
1个回答
0
投票
这意味着

list -> tail

不包含有效的指针。
© www.soinside.com 2019 - 2024. All rights reserved.