У меня есть такая сложная структура, вещь:
#include <stdlib.h>
typedef struct {
int x;
int y;
} SUB;
typedef struct {
int a;
SUB *z;
} STRUCT;
#define NUM 5
int main(void)
{
STRUCT *example;
int i;
example = malloc(sizeof(STRUCT));
example->z = malloc(NUM * sizeof(SUB));
for(i = 0; i < NUM; ++i) {
/* how do I access variable in certain struct of array of z's */
}
return 0;
}
example
- это динамически распределенная структура, а z
внутри example
- это динамически распределенный массив SUB
структур.
Как получить доступ к определенной переменной в определенном элементе структуры z
?
Я пытался что-то вроде этого: example->z[i].x
но, похоже, не работает.
В данный момент я использую этот потертый вид решения:
SUB *ptr = example->z;
int i;
for(i = 0; i < amount_of_z_structs; ++i) {
/* do something with 'ptr->x' and 'ptr->y' */
ptr += sizeof(SUB);
}