Chcę zamienić ze sobą dwa wskaźniki na liście dwukierunkowej. Pytanie brzmi czy o czymś zapomniałem czy coś namieszałem?
void swap(list *tmp1, list *tmp2)
{
list *przed1, *za1, *przed2, *za2, *cmp;
przed1=tmp1->left;
za1=tmp1->right;
przed2=tmp2->left;
za2=tmp2->right;
przed1->right=tmp2;
za1->left=tmp2;
przed2->right=tmp1;
za2->left=tmp1;
tmp2->left=przed1;
tmp2->right=za1;
tmp1->left=za2;
tmp1->right=przed2;
}