2014-10-29 3 views
-2

У меня есть реализованный метод, в котором у меня есть аргументы в виде двусвязного списка и данных каждого узла. Я хочу вернуть значение активного элемента в список.Возвращает значение активного элемента в двусвязном списке

Мой код:

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

'if (указатель == NULL) { pointer-> data = val;' ??? –

+1

'if (pointer == NULL)' -> 'if (pointer! = NULL)' – BLUEPIXY

+0

Что это за код * пытается * сделать (к тому же не работает). Если все, что вы делаете, извлекает значение активного элемента элемента, почти весь этот код не нужен, и * определенно * 'malloc' не требуется. – WhozCraig

ответ

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() не хорошее название для этой функции.

+0

в любом случае большое спасибо. –

Смежные вопросы