初始化结构和嵌套结构

ant*_*009 0 c

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;
}
Run Code Online (Sandbox Code Playgroud)

unw*_*ind 5

您需要在DETAILS_STRUCT中指定数组的长度; 否则没有内存可以分配.如果你想在那里有一个任意数组,请将其声明为指针:

typedef struct 
{
  int ID;
  NAME_AGE_STRUCT *info;
} DETAILS_STRUCT;
Run Code Online (Sandbox Code Playgroud)