гибкий массив в структурах в гибком массиве (начало AKA) - PullRequest
0 голосов
/ 25 ноября 2018
#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 ошибка любая идея, как это исправить?

...