char fl[1]
次のコード スニペットのような例をいくつか見ました。そのような構造が何に使用される可能性があるのか、私には推測できません。
struct test
{
int i;
double j;
char fl[1];
};
int main(int argc, char *argv[])
{
struct test a,b;
a.i=1;
a.j=12;
a.fl[0]='c';
b.i=2;
b.j=24;
memcpy(&(b.fl), "test1" , 6);
printf("%lu %lu\n", sizeof(a), sizeof(b));
printf("%s\n%s\n",a.fl,b.fl);
return 0;
}
出力 -
24 24
c<some junk characters here>
test1