2016-10-24 4 views
2

Сегодня мой учитель по программированию дал нам возможность решить проблему.Как использовать структуру внутри структуры

У нас есть два, но каждый из структур один использует другую структуру, как это:

typedef struct nodeA { 
    int data; 
    NODE_B *node_b; 
    struct nodeA *next; 
} NODE_A; 

typedef struct nodeB { 
    int data; 
    NODE_A *node_A; 
    struct nodeB *next; 
} NODE_B; 

Конечно порядок де декларации каждый раз дать «тип NODE_X недекларируемый» ошибку.

Есть ли способ решить это?

Я не знаю, если существует прототип для структур, таких как:

typedef struct NODE_A; 
+0

использование 'структура nodeB' вместо' NODE_B '... –

+1

Ваше название совершенно нечеткое. Вы не используете 'struct' внутри' struct', но ** указатель на ** 'struct'. Узнайте о различии, это жизненно важно. – Olaf

ответ

9

Это, вероятно, проще всего направить объявить оба typedef s:

typedef struct nodeA NODE_A; 
typedef struct nodeB NODE_B; 

struct nodeA { 
    int data; 
    NODE_B *node_b; 
    NODE_A *next; 
}; 

struct nodeB { 
    int data; 
    NODE_A *node_A; 
    NODE_B *next; 
}; 
+0

Ничего себе! Это сработало очень хорошо! Большое спасибо! – Vega

+0

@ Vega пометить ответ как правильный, если он разрешил вашу проблему. –

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