This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: Initialization of nested flexible array members
This is a hack, but you may give it a try:
typedef struct
{
char a;
char b;
int flexo[0];
} EnclosedStruct;
typedef struct
{
int a;
int b;
EnclosedStruct s;
int flexo[];
} MyStruct;
MyStruct toto = { 10, 20, { 'a', 'b'},{ 0, 1, 2, 3 } };
int main(int argc, char * argv[])
{
int i;
for(i=0;i<4;i++)
printf("%d\n",toto.s.flexo[i]);
}
Alexandre Courbot wrote:
Declare your stretchy-buffered struct this way:
typedef struct
{
char a;
char b;
int flexo[1024];
} EnclosedStruct;
Instead of "1024", use whatever largest possible size the struct could
conceivably need to accommodate.
This is unfortunately not an option, since the code is designed to run on
constraint embedded targets with 1K RAM at best... :)
Alex.