我有一個叫做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