2009-10-29 288 views
0

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; 
} 

回答

5

你需要指定在DETAILS_STRUCT數組的長度;否則沒有內存可分配。如果你想在那裏有一個任意的數組,請將其聲明爲一個指針:

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