初始化结构和嵌套结构

时间:2009-10-29 15:43:46

标签: 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;
}

1 个答案:

答案 0 :(得分:5)

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

typedef struct 
{
  int ID;
  NAME_AGE_STRUCT *info;
} DETAILS_STRUCT;