Я столкнулся проблемы с указателями и структурами в С. Допустим:Несовместимые типы при инициализации ошибки типа
typedef struct mdata{
int a;
int b;
...
} pred_data_attr;
typedef struct mConfig{
pred_data_attr mdata;
...
} mConfig;
struct control{
struct mConfig mcfg;
...
};
INT32 rdfapp(struct control *rdf){
pred_data_attr* mdata = rdf->mcfg.mdata;
...
}
Я получил эту ошибку:
incompatible types when initializing type 'struct pred_data_attr *' using type 'pred_data_attr'
Как я могу исправить эту проблему?
Пожалуйста, разместите код, который выполняет инициализацию. Но, судя по сообщению об ошибке, вы пытаетесь инициализировать тип указателя со структурой, что просто неправильно. Тип указателя возьмет что-то, возвращаемое из 'malloc',' calloc', 'realloc',' mmap', '&' operator или аналогичного. Не структура. –
Ваше соглашение об именах является странным (m префиксно к именам переменных-членов обычно, а не именам типов). Что такое определение 'mConfig'? Имеет ли он элемент 'mdata', который имеет тип' pred_data_attr * '? –
Предоставить детали структуры 'mConfig' – VoidPointer