#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中更改了带有灵活数组成员的结构的错误,错误如何解决?