gpt4 book ai didi

c - C中不兼容指针类型的赋值

转载 作者:太空宇宙 更新时间:2023-11-04 00:52:02 26 4
gpt4 key购买 nike

我一直收到“来自不兼容的指针类型的赋值”,我不明白为什么。我认为它看起来不错。我只是想在 C 中做链表的基础知识。

typedef struct{
int id;
struct node *next;
} node;

node *root = NULL; // Sets up a root node when the program starts.

create nodes(int id){
if(root == NULL){
root = (node*)malloc(sizeof(node));
root-> id = -1;
node *nextNode;
nextNode = (node*)malloc(sizeof(node));
nextNode -> id = id;
root-> next = nextNode; // This line is throwing an error.
}
}

我觉得这很简单,但我不能指手画脚......

最佳答案

您的结构实际上是 未命名的结构 typedef-d 到 node,但您稍后试图将其称为 struct node (这与您的 node typedef 不同)。快速解决方法是简单地为结构命名:

typedef struct node {
int id;
struct node *next;
} node;

或者,如果您愿意(这完全是风格上的),删除 typedef 并更正您对该结构的其他引用:

struct node {
int id;
struct node *next;
};

struct node *root = NULL;

create nodes(int id){
if(root == NULL){
root = malloc(sizeof(struct node));
root->id = -1;
struct node *nextNode;
nextNode = malloc(sizeof(struct node));
nextNode->id = id;
root->next = nextNode;
}
}

关于c - C中不兼容指针类型的赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15306655/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com