使用指向结构内的结构数组的指针

时间:2019-09-22 13:24:20

标签: c pointers struct

我正在尝试使用指向另一个结构内部的结构数组的指针,并能够引用不同的结构。不知道我是否正确执行此操作,因为我无法获取代码进行编译

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;

我得到的错误是: 错误:指向不完整类型'records []'的指针的下标

1 个答案:

答案 0 :(得分:0)

这里似乎有两个问题。我相信,您可以在struct中声明:

profile** PROFILES;

profile* PROFILES[];

这些具有相同的效果。

然后,在引用该项目的地方,应该注意,数组内部是配置文件* -s,因此可以像这样引用它们:

record1.PROFILES[0]->age

还要考虑到最初没有为PROFILES分配空间,所以您将必须手动管理该成员的基础存储。