可変長配列を構造体に格納したいので、この目的のためにポインターを使用します。ただし、格納された配列を取得すると、間違った値が返されます。以下の例では、出力 "1 0" が得られますが、出力 "1 2" が期待されます。
#include <stdio.h>
typedef struct Flexibility {
int *flex;
} Flexibility;
Flexibility calculateFlexibility()
{
int a[2];
a[0] = 1;
a[1] = 2;
Flexibility f;
f.flex = a;
return f;
}
void main()
{
Flexibility f;
f = calculateFlexibility();
int i;
for(i = 0; i < 2; i++)
{
fprintf(stdout, "%i ", *(f.flex + i));
}
}