我有一个叫做course的结构体,每个课程都有多个节点(另一个struct'node')。malloc struct struct中的结构体数组
它具有的节点数量会有所不同,但我从正在读取此信息的文件中获得该编号,以便该编号位于变量中。
所以我需要一个malloc里面的结构。但我很困惑。我知道你可以在结构中有数组,但我不知道在哪里放置创建malloc数组的代码,因为我的结构在我的头文件中。这是我目前的代码。我意识到它看起来错了,我只是不知道如何修复它,以及在哪里初始化malloc数组。
struct course {
char identifier[2];
int num_nodes;
struct node *nodes;
nodes = (struct nodes*)malloc(num_nodes*sizeof(struct node));
};
struct node {
int number;
char type[2];
};
我希望能够做一些事情,如:
struct node a_node;
struct course a_course;
a_course.nodes[0] = a_node;
等等
我没有用太多C,这是第一一次,我曾经尝试在C中使用动态数组。我的经验都来自Java,当然Java并没有像C那样真正地使用指针,所以对我来说都有点混乱。
所以一些帮助,将不胜感激,非常感谢:)
一种方法是像simonc在他的回答中描述的那样做。我只想回答你将malloc调用放在哪里的问题:在将内存分配给主结构之后立即执行它。伪代码:'a = malloc(mother_struct); a-> baby = malloc(baby_struct);':-) – Jite