We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
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).