结构可以命名为" AB"包含一个AB阵列?

时间:2014-10-20 15:21:19

标签: c arrays struct

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

我猜测问题是结构不能包含自身的数组?如果是这样,我怎样才能实现类似的功能?

2 个答案:

答案 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);