gpt4 book ai didi

c - 如何在结构中包含结构数组?

转载 作者:行者123 更新时间:2023-11-30 20:35:47 24 4
gpt4 key购买 nike

假设我有一个名为“Film”的结构和一个名为“Actor”的结构

typedef struct actor{
char *Name;
char *Surname;
int year_birth;
Title_Film * Film_recited;
}Actor;


typedef struct film{
Title_Film * Title; //pointer to structure
int year;
type genre; //enum
director * director_Film; //pointer to structure
//array of "Actor" structure
}Film;

我想在结构“电影”中插入结构“ Actor ”的数组,因为电影中有很多 Actor 。我可以做吗?怎么做?

最佳答案

首先,在定义影片之前需要先定义 Actor ,否则编译器不知道如何处理。

在电影结构中,只需声明指针,如下所示。

typedef struct actor{
char *Name;
char *Surname;
int year_birth;
Title_Film * Film_recited;
}Actor;


typedef struct film{
Title_Film * Title; //pointer to structure
int year;
type genre; //enum
director * director_Film; //pointer to structure
//array of "Actor" structure
Actor* cast;
}Film;

一旦你有了指针,你就需要计算出你将有多少个 Actor 。如果您有特定的实例,您可以提示此操作或将其硬编码到您的程序中。任何能让你的船漂浮的东西。

现在您知道了您的 Actor 有多大(假设您将其作为整数保存在变量castSize中,请分配内存:

movie.cast = (Actor*)malloc(sizeof(Actor)*castSize);

您现在可以像数组一样访问参与者列表,这将使您可以访问他们的属性。例如:

movie.cast[0]->Name = "Scarlet";
movie.cast[0]->Surname = "Johansson";
movie.cast[0].year_birth = 1984;

关于c - 如何在结构中包含结构数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38020381/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com