2014-12-11 3 views
0

Эта программа запускается в симуляторе Contiki Cooja.Назначение несовместимого типа указателя - программа Contiki C

Это ошибка дает строка:

n=(known_interest_list[*i].head_neighbour_list); 
  • n является структурой соседа * (указатель)
  • head_neighbour_list является указатель на голову списка STRUCT элементов типа сосед
  • 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: warning: assignment from incompatible pointer type [enabled by default]

Я знаю, что это очень простая ошибка, но я абсолютно уверены в том, что типы данных обеих сторон оператора присваивания являются одна и та же. Тем не менее, эта ошибка не устраняется.

+0

что находится внутри структуры списка? –

+0

Возможный дубликат [Предупреждение: назначение из несовместимого типа указателя] (http://stackoverflow.com/questions/20342324/warning-assignment-from-incompatible-pointer-type) –

+0

Недостаточно информации в вопросе диагностики проблемы , Возможно, вы захотите добавить фактические определения структуры и объявления переменных. То, что вы описали, кажется правильным, поэтому проблема должна быть в деталях. – user3386109

ответ

0

Кажется, что проблема связана с locales;). Если у вас есть опечатка только здесь, в вопросе есть два различных типа struct neighbo[u]r

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

Там есть дополнительный у в known_interest

+0

Спасибо! Глупая ошибка, которую я даже не мог заметить в течение нескольких часов. :( – user3007493

Смежные вопросы