>>223
#include <stdlib.h>
struct a {
int a;
char b[];
};

struct a *aaa(int l)
{
return malloc(sizeof(struct a) + l);
}
これを
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.01 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.
で、コンパイルするとエラー出ないけど。

> char c[a];char d[a];も実はありまして…
複数は無理。似たような事をやるなら

struct hoge {
int a;
char *b;
char *c;
char *d;
char data_[];
};
でb,c,dにdata_から切り出して与える。
b,c,dを使わず、マクロで直接data_にアクセスさせる方法もある。