我有一个这样的链接列表:
typedef struct _LIST_ELEMENT
{
T* data;
_LIST_ELEMENT* nextItem;
int index;
}LITEM,*P_LITEM,**PP_LITEM;
和四个指向指针的指针
PP_LITEM _head;
PP_LITEM _tail;
PP_LITEM _current;
PP_LITEM _previous;
情况是这样的:
我在列表中有 4 个元素,_head 指向第一个元素,_tail 指向最后一个元素,_current 和 _previous 作为光标一起工作。在我擦除索引为 2 的元素后,列表包含索引为 0,1 和 3 的 3 个元素,并且所有指针都指向右侧。此时如果我这样做(将光标移动到开头):
(*_previous) = (*_tail);
(*_current) = (*_head);
该列表缺少索引为 1 的元素,但所有指针都正确指向。如果我这样做:
_previous = &(*_tail);
_current = &(*_head);
一切都很好,什么都没有。
如果有人知道为什么会这样,请赐教。