Использование указателя на массив структур в структуре - PullRequest
0 голосов
/ 22 сентября 2019

Я пытаюсь использовать указатель на массив структур внутри другой структуры и иметь возможность ссылаться на различные структуры.Не уверен, что я делаю это правильно, так как я не могу получить код для компиляции

typedef struct profile {
    uint32 age;
    uint32 height;
    uint32 weight;
} profile;

typedef struct {
    uint32 number_of_friends;
    profile (*PROFILES)[];
} records;

// Here's how how i'm attempting to reference the above
uint32 age1;
records record1;
...
age1 = record1.PROFILES[0].age;

Я получаю ошибку: error: индекс указателя на неполный тип 'records []'

1 Ответ

0 голосов
/ 22 сентября 2019

Кажется, здесь есть две проблемы.Я полагаю, что вы могли бы объявить в структуре:

profile** PROFILES;

или

profile* PROFILES[];

Они имеют тот же эффект.

Тогда, когда вы ссылаетесь на элемент, выследует позаботиться о том, чтобы внутри массива были профильные * -s, поэтому вы можете ссылаться на них следующим образом:

record1.PROFILES[0]->age

Также учтите, что изначально для PROFILES не выделено место, вам придется вручную управлятьхранилище, лежащее в основе этого члена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...