typedef struct unit
{
struct unit * next;
int year;
int month;
int day;
struct unit revisions[3];
char subject[100];
}schedule;
上面的代码给出了以下错误:
array type has incomplete element type
struct unit revisions[3];
我猜测问题是结构不能包含自身的数组?如果是这样,我怎样才能实现类似的功能?
答案 0 :(得分:4)
你的问题包含答案本身。 struct unit * next;
您始终可以在结构定义中使用指向结构类型的指针,并从您的函数中分配内存并使用它。
答案 1 :(得分:1)
这将是一个很好的解决方法:
typedef struct unit{
struct unit * next;
int year;
int month;
int day;
struct unit *revisions; //just like you do with struct unit *next
char subject[100];
}schedule;
schedule s;
s.revisions = malloc(3 * sizeof *s.revisions);