首页 > 其他 > 详细

不能将X*类型的值分配到X*类型的实体

时间:2019-09-13 12:33:00      阅读:161      评论:0      收藏:0      [点我收藏+]

今天在学习链表的过程中遇到了这个问题,我用如下方法定义了一个结构体,然后这个函数想要在链表头插入一个节点。但是在函数的最后一行却出现了报错:不能将MyLinkedList * 类型的值分配到MyLinkedList * 类型的实体。

    typedef struct {
        int val;
        MyLinkedList* next;
    } MyLinkedList;

    void myLinkedListAddAtHead(MyLinkedList* obj, int val) {
    MyLinkedList* Temp;
    MyLinkedList* Node = (MyLinkedList*)malloc(sizeof(MyLinkedList));
    if (Node == NULL) {
        printf("Out of space!");
    }
    else {
        Node->val = val;
        Temp = obj;
        obj = Node;
        Node = Temp;
        obj->next = Node;//这一行赋值时报错
        }
    }

经过一番百度和试验,发现问题出在结构体的定义上。因为结构体中的MyLinkedList指针先于MyLinkdList结构体出现,所以会发生编译器不认识的情况。特别是vs的语法高亮还十分迷惑,让你误以为这里没有问题。于是改正后的代码如下:

    typedef struct MyLinkedList{
        int val;
        MyLinkedList* next;
    };

不能将X*类型的值分配到X*类型的实体

原文:https://www.cnblogs.com/lxy764139720/p/11516320.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!