извлечение структуры из вложенной структуры в c - PullRequest
0 голосов
/ 02 сентября 2010

У меня следующая проблема:

У меня есть одна глобальная структура, которая имеет много структур внутри. Теперь я хочу, чтобы одна из подструктур была извлечена и сохранена в другой структуре.

typedef struct 
{
  int a;
}A;

typedef struct
{
 int b;
}B;

typedef struct 
{ 
 A dummy1;
 B dummy2;
} C;

Я хочу объявить четвертую структуру, которая извлекает A из C. Я сделал свою memcpy, это единственный способ?

Помощь будет очень ценится

Спасибо Huzaifa

Ответы [ 3 ]

1 голос
/ 02 сентября 2010

Вы можете назначать структуры.Итак:

typedef struct
{
    A blah1;
    B blah2;
    /* Other members here */
} D;

C c;
D d;
...
d.blah1 = c.dummy1;

совершенно нормально.

0 голосов
/ 02 сентября 2010

Используйте указатель на нужную вам структуру:

int main() {
C c;
c.dummy1.a = 10;
c.dummy2.b = 20;

A *a;

a = &c.dummy1;

printf("%d\n", a->a);

return 0;

}

0 голосов
/ 02 сентября 2010

Должен быть в состоянии получить ссылку на dummy1.

typedef struct { A dummy1; } D;

C var1;
D var2.dummy;
(*var2.dummy) = &var1.dummy1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...