(结构指针数组)衰减

时间:2018-01-01 20:35:09

标签: c arrays pointer-arithmetic

struct Node * leftright(struct Node **head,struct Node *mid)
    {   struct Node *temp=*head;
        struct Node *ret[2];
        ret[0] = malloc(  sizeof(temp));
        ret[1] = malloc(  sizeof(temp)); 
        while((temp->next)!=mid)
        {
            temp=temp->next;

        }

        temp->next=NULL;
        (ret)->next=*head;
        ret[1]->next =mid;
       printList(ret[0]->next);
       printList(ret[1]->next);
       return ret[0];
    }

在此代码中,分隔左右子列表以进行合并排序。 我使用了结构指针数组。但是为什么在这种情况下ret不会对第一个元素进行deacying。 如果我使用(* ret) - > next = * head;或者ret [0]代码有效。

此外,如果我使用"(* ret) - > next = * head;"版本和使用指针算术"((* ret)+1) - > next = mid;"我没有打印出正确的清单。 我可能怀疑* ret减少到(* ret)[2]。但是为什么会发生这种情况而不是简单的衰变让我感到困惑。

由于

0 个答案:

没有答案