Hello, I try compile this code (.c) with --c99 option struct sx { char c; char a[]; }; static struct sx xx = { 1, {[5] = 0} }; and have error error: #146: too many initializer values
How to initialize array inside struct ?
ARM C/C++ Compiler, 4.1 [Build 791] [Standard]
Thanks
Mike K is correct. This is probably C99 compliant and may work for you:
struct sx { char c; char *a; }; static struct sx xx = { 1, (char[5]){0}};
Yes - this works fine. Only one remark - in this i have a pointer to a but not a array. Of cource it helpful but i can't port gcc and armcc sources (or need make different codes for process a[]</a> and *a</a>. But you answer really help me. Thanks Marc Crandall
yup, porting becomes a lot harder when you deviate from standards.
I'm sure the pointer solution will work with gcc as well.
Yes - :) i already make contional compling. Thanks again Marc
P.S. i use armcc as final for own binaries (smallest code genaration). And gcc compatibility for other people (as opensource).