0
我有一個while循環,在while循環的每個itteration中malloc一個struct對象。然後在循環結尾,我將它添加到鏈表的末尾。現在我關心的是,當我每次在循環中使用malloc時,我都有相同的變量名,所以我不明白在將最新的malloced對象附加到鏈表之後它是如何工作的,然後我將mableced的其他變量一樣的名字。以這種方式mallocing一個對象是非法的嗎?
我的代碼:
struct Student{
char *name;
int IDno;
}Student;
someFunction(){
x = 0;
while(x!=6){
Student *name = malloc(sizeof(Student)); <----- Confusion here
addToLinkedList(LinkedListStruct,name);
}
它是正常的,我有name
被在每次循環malloced。有人可以向我解釋如果我以這種方式使用malloc會發生什麼情況,將它添加到鏈表的末尾,然後進入下一個循環並執行相同操作。
這是一個很好的做法,將結果轉換爲正確的類型,在本例中爲'Student *'。 –
它實際上**非常糟**實踐 - http://stackoverflow.com/questions/605845/do-i-cast-the-result-of-malloc – Idos
@JohnSensebe,沒有什麼是好的。 – SergeyA