我想通过两次调用这个函数建立两个链表,请问哪里出错了呢

qq_45666081 2019-10-08 04:00:01
void remake(int a,node *listdemo) { int b=a; while(a--) { node* p=(node*)malloc(sizeof(node)); scanf("%d",&p->a); if(a==b-1) { listdemo->a=p->a; listdemo->next=NULL; } else { listdemo->next=p; listdemo=p; } } }
...全文
113 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2019-10-09
  • 打赏
  • 举报
回复
这叫双重指针;不叫二维指针。
qq_45666081 2019-10-09
  • 打赏
  • 举报
回复
引用 1 楼 赵4老师的回复:
void remake(int a,node **listdemo)
{
    int b=a;
    while(a--)
    {
        node* p=(node*)malloc(sizeof(node));
        scanf("%d",&p->a);
        if(a==b-1)
        {
            (*listdemo)->a=p->a;
            (*listdemo)->next=NULL;
        }
        else
        {
            (*listdemo)->next=p;
            *listdemo=p;
        }
    }
}
谢谢,用二维指针就可以了
自信男孩 2019-10-09
  • 打赏
  • 举报
回复
node *remake(int a,node *listdemo)
{
int b=a;
while(a--)
{
node* p=(node*)malloc(sizeof(node));
scanf("%d",&p->a);
if(a==b-1)
{
listdemo->a=p->a;
listdemo->next=NULL;
}
else
{
listdemo->next=p;
listdemo=p;
}
}

return listdemo;
}

供参考~
赵4老师 2019-10-08
  • 打赏
  • 举报
回复
node *alist;
node *blist;
remake(2,&alist);
remake(3,&blist);
赵4老师 2019-10-08
  • 打赏
  • 举报
回复
void remake(int a,node **listdemo)
{
    int b=a;
    while(a--)
    {
        node* p=(node*)malloc(sizeof(node));
        scanf("%d",&p->a);
        if(a==b-1)
        {
            (*listdemo)->a=p->a;
            (*listdemo)->next=NULL;
        }
        else
        {
            (*listdemo)->next=p;
            *listdemo=p;
        }
    }
}

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧