структура внутри структуры в с - PullRequest
0 голосов
/ 09 сентября 2011

Я хочу получить доступ к структуре внутри структуры, кто-нибудь знает как?

EDIT:

typedef struct{
    int a, b;
} struct_1;

typedef struct{
    int c;
    struct_1 exemple;
} struct_2;
struct_2 Table[100];

Здесь, например, я хочу присвоить значение таблице [0] .exemple.a

Спасибо. РЕДАКТИРОВАТЬ: вау, какая-то глупость ... иногда это работало, просто мой отпечаток печатался 100 раз, тогда как у меня было всего 6 записей, поэтому мне все равно пришлось посмотреть на печать благодаря

Ответы [ 4 ]

3 голосов
/ 09 сентября 2011

Точно так же, как ваш пример:

Table[0].exemple.a = 12;

Я думаю, что ваша проблема в том, что exemple - это struct_2 в вашем примере, а не struct_1, как кажется, как вы и предполагали. Попробуйте это для размера (с исправленным правописанием):

typedef struct{
  int a, b;
} struct_1;

typedef struct{
  int c;
  struct_1 example;
} struct_2;
struct_1 Table[100];
0 голосов
/ 09 сентября 2011

Ваша декларация struct_2 выглядит неправильно. Заменить struct_2 exemple; на struct_1 exemple;. Чтобы получить доступ к данным внутри структуры, используйте оператор . или оператор ->, если вы используете указатели.

0 голосов
/ 09 сентября 2011

Я думаю, вы, вероятно, имели в виду:

typedef struct{
    int c;
    struct_1 exemple; /* see how it's struct_1 */
} struct_2;

а не

typedef struct{
    int c;
    struct_2 exemple;
} struct_2;

Поскольку struct_2 не имеет поля a.

После этого, Table[0].exemple.a = 5, должно работать, например.

0 голосов
/ 09 сентября 2011

С помощью вложенных структур вы продолжаете получать доступ к свойствам, пока не достигнете того, что ищете, вот так:

Table[0].example.a = 5;
Table[0].example.b = 10;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...