我正在实现一个方法,其中我有一个双向链表和每个节点的数据作为参数。我想返回列表中活动元素的值。
我的代码是:
void DLCopy (tDLList *L, int *val) {
tDLElemPtr pointer=NULL;
if(L->Act!=NULL)
{
pointer=(tDLElemPtr) malloc(sizeof(struct tDLElem));
if (pointer == NULL)
{
pointer->data=val;
pointer->rptr = L->Act->rptr;
pointer->lptr = L->Act;
L->Act->rptr = pointer;
L->Act->lptr = NULL;
}
else
{
DLError();
}
}
}
任何想法??
它给了我返回值= -2无论如何。
提前感谢。
答案 0 :(得分:0)
如果您正在尝试获取活动元素的值,那么它似乎只是:
void DLCopy (tDLList *L, int *val)
{
if (L != NULL && L->Act != NULL && val != NULL)
{
*val = L->Act->data;
}
else if (val != NULL)
{
*val = 1234; // Default value if no active element (if desired)
}
}
注意:DLCopy()
不是此功能的好名称。