Я не понимаю, как динамически выделять память для массива структур в другой структуре. Как и в, вот моя проблема ... У меня есть файл project.c, который содержит основной, у меня есть еще один файл polyomial.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 для пустого массива терминов. Это будет сделано при запуске программы, но после выделения полинома (я думаю).
Другой вопрос. Теперь, когда я иду освобождать память, это должно быть сделано в конце программы до ее выхода и порядок, в котором я свободен, должен быть снизу вверх, правильно? Другими словами, освободите массив термов, а затем полиномиальный массив.
На этом этапе были бы полезны любые подсказки или рекомендации. Благодаря!
Это относится к тому, что он делает домашнее задание для него. Разве не лучше было бы это решить, но привести его к решению, не сделав этого для него? –
Когда и где должны вызываться * термины calloc? – Hall9
Главное, чтобы полиномы, которые вы используете, указывали на действительные указатели, иначе вы не можете назначить их членов. – Jack