c语言中如何在结构体中嵌套指向结构体数组的指针

c语言中如何在结构体中嵌套指向结构体数组的指针

struct ordinal
{
    int machine;
    int time;
};

struct student
{
    struct ordinal *ordi;
    int find;
};

int main()
{
    .......
    struct student stu[N];
    struct ordinal *ordi;
    ordi=(struct ordinal*)malloc(20*sizeof(struct ordinal));
    .......
}

请问上面的表示正确吗?
如若不对,请帮忙指正,感谢!
还有一个问题就是可以如下表示吗?
scanf("%d",&stu[i].ordi[j].machine);//定义时是这样的:

                                 struct student stu[N];
                                 struct ordinal *ordi;

在编译运行时这个scanf无法进行输入,所以有此疑问。

阅读 3.7k
1 个回答
struct student stu[N];

这里定义了长度为 N 的 student 数组。
要对每一个 stu 的 ordi 分配空间。

示例代码:

int main() {
...
    struct student stu[N];
    for (int i = 0; i < N; i++) {
        stu[i].ordi=(struct ordinal*)malloc(20*sizeof(struct ordinal));
    }
...

这样才能输入。

你的输入语句没问题。