разыменование указателя на неполный тип 'TNode {aka struct SNode}' - PullRequest
0 голосов
/ 29 марта 2020

Я видел много вопросов об этом прежде здесь. Но у моей программы такая же проблема.

это структура, которую я создал

struct SVolo{
        float orariopart;
        float orarioarr;
        char pospartenza[MAX];
        char posarrivo[MAX];
        char code[COD];
        int nposti;
        TList mappa;
        };

и в заголовочном файле я определил

typedef struct SNode TNode;
typedef TNode *TBST;

Хорошо, теперь мне нужна функция, которая выдала бы мне поддерево, которое я хочу

TBST search_fly(TBST voli,char codice[COD]){
    if (voli==NULL)
        return NULL;
    if(info_uguali(voli->info,codice)){
    return voli;
        }
    if(info_maggiore(voli->info,codice)){
     voli->right=search_fly(voli->right,codice);
     return voli;
    }else{
        voli->left=search_fly(voli->left,codice);
        return voli;
    }
       } 

последняя функция, о которой вам нужно знать, это

void update_map(TVolo unvolo,TList mapppa){
         unvolo.mappa=mapppa;
     }

, когда я вызываю ее в основном, я вызываю ее следующим образом

TBST tmp;
tmp=search_fly(voli,codice);
update_map(tmp->info,map);// and here's the error in the title 
struct SNode {
    TVolo info;
    struct SNode *left;
    struct SNode *right;

};

struct SNodo{
    TUser info;
    struct SNodo *link;
};
typedef struct SNodo TNodo;
typedef TNodo *TList;

Я действительно не понимаю, что не так с объявлением TNode (он же struct SNode). Также я использовал эту структуру для других функций и частей кода, и это не дало мне ошибок. Так что я думаю, что-то не так в подфункциях или что-то в этом роде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...