我不明白如何爲另一個結構內的結構數組動態分配內存。如在這裏是我的問題...我有一個project.c文件,其中包含主,我有另一個polynomial.c文件,處理所有的聚合操作,如添加條款,乘以數字等多項式..動態內存分配結構中的數組,
這是polynomials.h
typedef struct term{
int coeff;
int expo;
} TERM;
typedef struct polynomial {
int size;
// This needs to be changed to calloc.. not sure how within a struct
TERM terms[20];
} POLYNOMIAL;
...
...
I,其用於動態聚陣列分配內存我project.c文件內也有這樣的頭文件。
POLYNOMIAL *polynomials = (POLYNOMIAL *)malloc(sizeof(POLYNOMIAL) * 8);
// 8 being the max number of polynomials I wan to store
我在這裏有兩個問題,何時以及如何動態地爲術語數組分配內存?我在想也許要做一個指針,該指針持有一個空的數組項的calloc內存。這將在程序開始時完成,但在多項式分配之後(我認爲)。
另一個問題,現在當我釋放內存時,應該在程序結束前完成,然後退出,我釋放的順序應該是自下而上的,對嗎?換句話說,釋放術語數組然後釋放多項式數組。
在這一點上任何提示或指導將有所幫助。謝謝!
這符合他爲他做功課的資格。難道不是爲了解決這個問題而不是更好,而是讓他不用爲他做出解決方案? – 2012-04-05 22:20:52
什麼時候應該調用*條件calloc? – Hall9 2012-04-05 22:21:19
最重要的是你正在使用的多項式指向有效的指針,否則你不能分配它們的成員。 – Jack 2012-04-05 22:22:05