如何解决此错误:在malloc_error_break中设置断点进行调试

时间:2019-04-16 15:13:08

标签: c++ linked-list

我正在学习编码链表。我当前正在尝试删除链接列表的第一个元素。所以我写了下面的代码。 对于第一个元素,它工作正常。但它显示第二个元素的错误。

void deleteFirst(Node* head){

    Node* temp = head;
    head->data = temp->next->data;
    head->next = temp->next->next;
    free(temp);}

给出的链接列表:

2 3 4 5 6 7

第一次删除后,它向我显示:

 3 4 5 6 7 

第二次删除后显示给我:

a.out(78094,0x7fff92d38380) malloc: 
    *** error for object 0x7ffb39400370: pointer being freed was not allocated
    *** set a breakpoint in malloc_error_break to debug
    Abort trap: 6

1 个答案:

答案 0 :(得分:1)

您的温度和头部都指向相同的记忆。当您释放温度时,您也可以释放头。检查一下自己的逻辑和运气。