Tell me why, by adding a separate case to remove an item from the list, if it is one, then only the name is deleted. How to correct?
APTEKA* DeleteElem(APTEKA* pdel) { if(pdel == head && pdel == tail) { head->next=NULL; head->prev=NULL; tail->next=NULL; tail->prev=NULL; FreeElemMemo(pdel); return NULL; } if(pdel == head) { head=head->next; head->prev=NULL; FreeElemMemo(pdel); return head; } if(pdel == tail) { tail = tail->prev; tail->next=NULL; FreeElemMemo(pdel); return NULL; } else { APTEKA *pnext; pdel->next->prev=pdel->next; pnext=pdel->prev->next=pdel->next; FreeElemMemo(pdel); return pnext; } }
... = NULLin the first branch? - AnT