节点指向上一个节点,但没有上一个节点。导致内存写入错误

时间:2014-02-20 04:28:13

标签: c++ pointers iterator nodes nullptr

这是搞砸的部分。这意味着将_head-> prev取消引用为nullptr但是如果没有prev它崩溃,所以我试图处理该崩溃。当它到达

if( _head )
   (!_head->prev)
由于之前没有,它会变得混乱。我无法弄清楚如何写一个if语句来处理这个时刻,以便它不会破坏。如果没有上一个我只想要它--_ size删除tmpnode并返回结果。

template <class list>
list linked_list<list>::pop_front()
{
assert( !empty() );

node_ptr_t tmpNode(_head);
list result = _head->data;
if(_head->next)
    _head = _head->next;
else
    _head = _tail;


if ( _head ) 
    if(!_head->prev)
    {
        --_size;
        delete tmpNode;
        return result;
    }else{
    _head->prev = nullptr;
    }else {
    _tail = nullptr;
}
//_head ? _head->prev=nullptr : _tail=nullptr;

--_size;
delete tmpNode;
return result;

}

0 个答案:

没有答案