……分配了一个不兼容的指针类型

C语言 码拜 8年前 (2017-05-03) 1439次浏览
...
void list_all_items(ITEM *HEAD){
    ITEM *item = HEAD;
    printf("ID\t\tNAME\n");
    while(item){
          print_item_info(item);
          item = item->next;
    }
}
...

编译后警告:
assignment from incompatible pointer type [-Wincompatible-pointer-types]
item = item->next;
问题起始点在“=”这里
可是,本人只能通过这个方法才能让指针指向链表的下一个地址啊,莫非本人写的哪里不规范有问题?
问一下该怎么样避免这个警告?假如放任不管会出现什么问题?

解决方案

5

看一下你的数据结构定义

20

你看下你的ITEM结构体中,next成员的类型是不是ITEM*类型

10

引用:
Quote: 引用:

你看下你的ITEM结构体中,next成员的类型是不是ITEM*类型

typedef struct Item{
  int id;
  char name[255];
  struct Item *next;
}ITEM;

应该就是ITEM吧?

那你给的这部分代码应该没问题
你试下:item = (ITEM*)item->next;


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明……分配了一个不兼容的指针类型
喜欢 (0)
[1034331897@qq.com]
分享 (0)