c - 尝试移动到链表的下一个元素时出错

标签 c pointers linked-list

我正在处理链表,在移动到链表的下一个元素时遇到问题。我得到的错误是: 错误:从类型“struct item *”分配给类型“item”时类型不兼容

代码如下:

typedef struct item
{
    float size;
    struct item *next;
} item;

item head, curr, tail;

...

head.next = (item*) malloc(sizeof(item));
curr = head.next;

感谢您的帮助。

最佳答案

在这个赋值语句中

curr = head.next;

curr 的类型为 itemhead.next 的类型为 item *。即第一个是结构对象,第二个是指针。它们不相容。

因此编译器会报错。

你应该像指针一样声明变量curr

item *curr;

关于c - 尝试移动到链表的下一个元素时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40577974/

相关文章:

c - 如何通过双击读取使用fwrite直接写入的文件

c++ - 返回对本地取消引用指针的引用

c++取消引用通过引用传递分配的指针,给出随机值

c - 删除节点后打印结构链表时出错

c - 将链接列表打印到现有文本文件 - 覆盖文件

c - 解释输出

c - 在免费 RTos 中实现调度程序

c - SDL "dropping"初始事件?

arrays - C - 避免警告 "address of stack memory associated with local variable returned"

c - 从二进制文件读取用户信息到链表