zoukankan      html  css  js  c++  java
  • 不能将X*类型的值分配到X*类型的实体问题的解决方法

    今天在学习链表的过程中遇到了这个问题,我用如下方法定义了一个结构体,然后这个函数想要在链表头插入一个节点。但是在函数的最后一行却出现了报错:不能将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的语法高亮还十分迷惑,让你误以为这里没有问题(这应该是C++而不是C的写法)。于是改正后的代码如下:

        typedef struct MyLinkedList{
    	    int val;
    	    MyLinkedList* next;
        } MyLinkedList;
    
  • 相关阅读:
    Virtualbox-CentOS网络配置
    使用phpmyadmin创建数据库
    Vue CLI的使用
    webpack3的使用
    Vue组件化之插槽
    Vue组件化开发
    Vue高级技巧
    Vue基础学习笔记
    Git解决冲突和diff用法
    Git常用命令举例
  • 原文地址:https://www.cnblogs.com/lxy764139720/p/11516320.html
Copyright © 2011-2022 走看看