GCC
我刚刚回到c编程中,我只是在练习结构。但是,我有一个嵌套结构,我想从另一个初始化结构填充。但是,我不认为我的技术是正确的方法。
任何建议都是最有帮助的,
#include <stdio.h>
typedef struct
{
char name[20];
int age;
} NAME_AGE_STRUCT;
typedef struct
{
int ID;
NAME_AGE_STRUCT info[];
} DETAILS_STRUCT;
int main(void)
{
DETAILS_STRUCT details;
NAME_AGE_STRUCT extra_details [] = {
{ "john", 34 },
{ "peter", 44 },
};
printf("=== Start program\n");
details.ID = 2;
details.info = extra_details;
return 0;
}
答案 0 :(得分:5)
您需要在DETAILS_STRUCT中指定数组的长度;否则没有内存可以分配。如果你想在那里有一个任意数组,请将其声明为指针:
typedef struct
{
int ID;
NAME_AGE_STRUCT *info;
} DETAILS_STRUCT;