z三分天注定七分靠打拼 2016-05-13 15:12 采纳率: 0%
浏览 1138

关于c的双向链表中的问题求解答

typedef struct sum {
int num;
int length;
struct sum * pnext; 下个节点
struct sun * pbefore; 上个节点
} number;

我在添加函数中
n1 = (number *)malloc(sizeof(number) );
printf("请输入数字.\n");

scanf_s("%d",&( n1->num));

printf("请输入标记数字。\n");
scanf_s("%d",&n1->length);
n1->pnext = n1;         //这里正确通过了
n1->pbefore = n1;    //这里提示 不能将 number *类型的值 分配到  sum* 类型的实体中

我就奇怪了  俩个一模一样的语句  ,上边的没事 下边提示有这个错误。请高手帮看一下 这是什么原因啊
  • 写回答

6条回答 默认 最新

  • 关注

    这个是我的整体代码 如下:
    number * n;
    n = p->pheads;
    number * n1;
    n1 = (number *)malloc(sizeof(number) );
    printf("请输入数字.\n");

    scanf_s("%d",&( n1->num));
    
    printf("请输入标记数字。\n");
    scanf_s("%d",&n1->length);
    n1->pnext = n1;                                 //这个却没有提示  。请问是什么原因啊
    n1->pbefore = n1;                            //这里提示错误,不能将 number * 类型的值 分配 到sum*类型的实体 
    if (!empty(*p))
    {
        p->pheads = n1;
        printf("ok\n");
    }
    else
    {
        while (p->pheads->pnext != NULL)                         //循环寻找到最后的空指针
        {
            p->pheads->pnext = p->pheads->pnext->pnext;
        }
    
        n1->pbefore = p->pheads;         //这里也提示那样的错误 ,显示 不能将sum* 类型的值 分配到 sum* 类型的实体
        p->pheads->pnext = n1;
        p->pheads = n;
    }
    

    // p->pheads = n; //重新定位头指针

    }
    这个是我的添加函数中的代码。

    结构体如下:typedef struct sum {
    int num;
    int length;
    struct sum * pnext;
    struct sun * pbefore;
    } number;
    这个是结构体

    typedef struct phead {
    number * pheads;
    }ph;
    求高手解答一下。3q了

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器