gpt4 book ai didi

c - 递归数据结构出错 - 从类型 struct *l 分配 List 时类型不兼容

转载 作者:行者123 更新时间:2023-11-30 17:55:35 24 4
gpt4 key购买 nike

我制作了一个二叉树,其中基本上有三个级别的结构:

typedef struct l {
char n[15];
struct l *next;
} List;

typedef struct {
char rname[20];
char lname[20];
List number;
} info;

typedef struct tree {
info thisnode;
struct tree *left;
struct tree *right;
} Tree;

在这行代码

 t->thisnode.number = t->thisnode.number.next;

我收到标题中提到的错误

通常,对于递归数据结构,这些类型的赋值有效,尽管 next 具有类型 struct *l。谁能帮我弄清楚为什么在这种情况下它不起作用?

而且我本能地将上面的行作为

 t->thisnode.number = t->thisnode.number->next;

但我的编译器似乎更不喜欢这样。

最佳答案

嗯,这些类型肯定是不兼容的。

number中的next字段的类型是struct l *,但是number中的number的类型infoList,它是 struct l 的别名,即整个结构,而不仅仅是指向它的指针。所以你试图将一个指针分配给整个结构,但它不会飞。

您似乎缺少指针级别,也许 info 中的 number 字段应该是 List *

关于c - 递归数据结构出错 - 从类型 struct *l 分配 List 时类型不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14197085/

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