У меня 2 структуры:
struct A {
int m1;
int m2;
}
и вторая структура, которая имеет в качестве члена предыдущую структуру:
struct Temp_A {
A a;
}
Тогда у меня есть в моей программе:
Temp_A** temp_a;
Поэтому мои вопросы:
Как я могу выделить память для temp_a
?
Как я могу получить доступ к? a
Это должно быть что-то вроде (* temp_a) → a...
Спасибо!
Как я могу выделить память для temp_a?
//1 here is number of pointer elements you want as temp_a is pointer to pointer
// or for simplicity array of pointers.
temp_a = malloc(sizeof(*temp_a)* 1);
//then you should allocate temp_a[0] too
temp_a[0] = malloc(sizeof(**temp_a));
Как я могу получить доступ к
(*temp_a)->a
//and tehn
(*temp_a)->a.m1
//you can access as too
temp_a[0]->a
Прежде всего, вы должны объявить Temp_A
следующим образом:
struct Temp_A {
struct A a;
}
Теперь Temp_A**
указывает на указатель на Temp_A
, поэтому вы можете назначить как
temp_a = malloc(sizeof(Temp_A*));
(*temp_a) = malloc(sizeof(Temp_A));
Вы можете получить доступ, как
(*temp_a)->a
temp_a
. Какой у вас вариант использования? Какова цель дизайна? И самое главное, какую проблему вы пытаетесь решить?