解除引用NULL指针指向的元素

时间:2017-07-06 03:04:17

标签: c pointers null segmentation-fault dereference

我正在使用优先级队列,但我似乎在(*ppFront)->pNext = NULL处遇到了分段错误。在这种情况下,pNext是队列的前端,pPrev指向列表的其余部分。我不知道如果(*ppFront)->pNext始终为NULL作为列表的前面,这可能是一个错误。

WaitlistEntry dequeue( PQNode** ppFront ){
    WaitlistEntry ret;
    if(*ppFront == NULL)
        return;
    PQNode *temp = *ppFront;
    ret.iPriority = (*ppFront)->info.iPriority;
    ret.iStudentID = (*ppFront)->info.iStudentID;
    *ppFront = (*ppFront)->pPrev;
    (*ppFront)->pNext = NULL;
    free(temp);
    return ret;
}

我有一个enqueue方法,我单独测试,它创建实际的队列没有问题,但我在删除队列的前面时遇到问题。这是我的错误。

Invalid write of size 8
   at 0x40134D: dequeue( enroll.c:317)
   by 0x4011AA: dropStudent(enroll.c:251)
   by 0x400D32: main (enroll:111)
address 0x8 is not stack'd, malloc'd or (recently) free'd

我用谷歌搜索了,我想我试图取消引用空指针(?)。

0 个答案:

没有答案