Error 'a value of type “X *” cannot be assigned to an entity of type “X *”' when using typedef struct

后端 未结 3 752
走了就别回头了
走了就别回头了 2021-01-21 09:11

Here is the struct I am using for the nodes...

typedef struct
{
    struct Node* next;
    struct Node* previous;
    void* data;
} Node;

and h

相关标签:
3条回答
  • 2021-01-21 09:55

    Similar to Deepu's answer, but a version that will let your code compile. Change your struct to the following:

    typedef struct Node // <-- add "Node"
    {
        struct Node* next;
        struct Node* previous;
        void* data;
    }Node; // <-- Optional
    
    void linkNodes(Node* first, Node* second)
    {    
        if (first != NULL)
            first->next = second;
    
        if (second != NULL)
            second->previous = first;
    }
    
    0 讨论(0)
  • 2021-01-21 10:03

    I think the problem is there is no struct called Node, there is only a typedef. Try

     typedef struct Node { ....
    
    0 讨论(0)
  • 2021-01-21 10:10

    Defining typedef of struct in C is best done before the struct declaration itself.

    typedef struct Node Node; // forward declaration of struct and typedef
    
    struct Node
    {
        Node* next;          // here you only need to use the typedef, now
        Node* previous;
        void* data;
    };
    
    0 讨论(0)
提交回复
热议问题