#include <stdlib.h>
#include <stdio.h>
struct data *poly;
struct data{
int a;
double coeff[];
};
void resize(size_t n);
struct data inputdata()
{
printf("please enter the order of your polynomial");
int b;
scanf("%d", &b);
struct data polynomial;
polynomial.a = b;
////////////////////////////////////////////
for(int i = 0; i<=b; i++){
printf("enter your coeffiecient");
scanf("%le",&polynomial.coeff[i]);
}//end for
return polynomial;
}
void resize(size_t n)
{
poly = realloc(poly,n *(sizeof *poly));
}
int main(void)
{
poly = malloc(sizeof(int)+ sizeof(double));
size_t i, n;
printf("how many polynomials do you want to make");
scanf("%ld",&n);
resize(n);
for(i = 0; i<n; i++){
poly[i] = inputdata();
}
free(poly);
}
Я пытаюсь закодировать что-нибудь, что делает многочлены: пользователь может выбрать, сколько многочленов он хочет сделать, выбрать порядок многочленов и ввести все их коэффициенты.Очевидно, мне нужно привести в порядок то, как они просили данные и прочее, но я просто пытаюсь сначала заставить их работать.
Я храню каждый полином в структуре, все структуры хранятся в гибком массиве.В каждой структуре есть гибкий массив, и я просто не могу понять, как выделить память для гибкого массива в структуре, код выше работает, если в структуре нет гибкого массива, но когда он в нем, я получаю примечание: ABIпередачи структуры с гибким членом массива изменилась в GCC 4.4 ошибка любая идея, как это исправить?