我不明白如何为另一个结构中的结构数组动态分配内存。如在,这是我的问题......我有一个包含主要的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;
...
...
我的 project.c 文件中也有这个,它为多边形数组动态分配内存。
POLYNOMIAL *polynomials = (POLYNOMIAL *)malloc(sizeof(POLYNOMIAL) * 8);
// 8 being the max number of polynomials I wan to store
我在这里有两个问题,我应该何时以及如何为术语数组动态分配内存?我在想也许做一个指向一个指针的指针,该指针持有一个空的术语数组的 calloc 内存。这将在程序开始时完成,但在多项式分配之后(我认为)。
另一个问题,现在当我去释放内存时,应该在程序结束之前在它退出之前完成,并且我释放的顺序应该是自下而上,对吗?换句话说,先释放术语数组,然后释放多项式数组。
在这一点上,任何提示或指导都会有所帮助。谢谢!