【问题标题】:Assignment from incompatible pointer type -- Contiki C program来自不兼容指针类型的赋值——Contiki C 程序
【发布时间】:2014-12-11 20:48:11
【问题描述】:

此程序正在 Contiki 模拟器 Cooja 中运行。

这是给出错误的行:

n=(known_interest_list[*i].head_neighbour_list);
  • n 是结构邻居 *(指针)
  • head_neighbour_list 是指向结构邻居列表头的指针 类型元素
  • known_interest_list 是一个结构数组

结构定义如下:

struct neighbor {
  struct neighbor *next;
  rimeaddr_t addr;
  int last_rssi, last_lqi;
  int count;
  int update_time;
};

struct  known_interest{
    struct neighbour *head_neighbour_list;
    int count;
    int interest_no;
};

struct known_interest known_interest_list[MAX_INTERESTS];

错误是:

uniBroad.c:221:10:警告:来自不兼容指针类型的赋值 [默认启用]

我知道这是一个非常基本的错误,但我绝对确保赋值语句两边的数据类型相同。不过,这个错误并没有得到解决。

【问题讨论】:

  • 列表结构里面是什么?
  • 问题中没有足够的信息来诊断问题。您可能想要添加实际的结构定义和变量声明。你所描述的似乎是正确的,所以问题一定出在细节上。
  • @RyanHaining , user3386109:我现在已经添加了结构定义
  • 你用两种不同的方式拼写了neighbor neighbour。这是一个错字,还是实际上在代码中?

标签: c pointers contiki


【解决方案1】:

这似乎是locales 的问题;)。除非您在问题中只有一个错字,否则有两种不同的struct neighbo[u]r 类型

struct neighbour *head_neighbour_list // in the known_interest
struct neighbor *next // in the struct neighbor itself

known_interest中多了一个u

【讨论】:

  • 谢谢!愚蠢的错误我什至几个小时都没有注意到。 :(
猜你喜欢
  • 2019-08-09
  • 2014-12-14
  • 2019-06-05
  • 2014-07-27
  • 1970-01-01
  • 1970-01-01
  • 2021-06-07
  • 1970-01-01
  • 2016-09-16
相关资源
最近更新 更多