errorstudent 2022-01-11 23:41 采纳率: 0%
浏览 27

浙大翁恺C语言链表的代码报错为什么

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
 #ifndef _NODE_H_
#define _NODE_H_
typedef struct _node{
    int value;
    struct _node *next;
} Node;

#endif
typedef struct _list{
    Node* head;
}List;
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    List list;
    Node *head=NULL;
    int number;
    list.head=NULL;
    do{
        scanf("%d",&number);
        if(number!=-1){
            add(&list,number);
        }
    }while(number!=-1);
    
    return 0;
}
void add(List *plist,int number){
    
          Node *p=(Node*)malloc(sizeof(Node));
          p->value=number;
          p->next=NULL;
          Node *last;
          last=*plist->head;
          if(last){
            while(last->next){
           last=last->next;
       }
          last->next=p;
    }else{
        plist->head=p;
    }
}

运行结果及报错内容

 incompatible types when assigning to type 'struct Node* ' from type 'Node'
  • 写回答

2条回答 默认 最新

  • 关注

    你题目的解答代码如下:

    #ifndef _NODE_H_
    #define _NODE_H_
    typedef struct _node{
        int value;
        struct _node *next;
    } Node;
    
    #endif
    typedef struct _list{
        Node* head;
    }List;
    #include <stdio.h>
    #include <stdlib.h>
    void add(List *plist,int number); //在前面声明下
    
    int main(void)
    {
        List list;
        Node *head=NULL;
        int number;
        list.head=NULL;
        do{
            scanf("%d",&number);
            if(number!=-1){
                add(&list,number);
            }
        }while(number!=-1);
        head = list.head;
        while (head)
        {
            printf("%d\n", head->value);
            head = head->next;
        }
        return 0;
    }
    void add(List *plist,int number){
    
              Node *p=(Node*)malloc(sizeof(Node));
              p->value=number;
              p->next=NULL;
              Node *last;
              last=plist->head;  //去掉plist前面的*号
              if(last){
                while(last->next){
               last=last->next;
           }
              last->next=p;
        }else{
            plist->head=p;
        }
    }
    

    如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

    img

    评论

报告相同问题?

问题事件

  • 创建了问题 1月11日

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)