This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

declare a variable with flexible array members (c99)

Hello everyone,

in c99 I can make a struct with a flexible array member at the end. Is it possible to create such a variable at compile time?

e.g:

struct monitoredArray
{
   unsigned int const arrSize;
   unsigned int nUsed;
   uint8_t array[];
};

static struct monitoredArray myArray = {10, 0, [10] /* this won't work... */};

I'd like to use this for a generic kind of initialization (in respect to the array size) so I can use this in different modules without big modification or use of malloc and an init-function. I just want to know how to write that [10] in the example above.

Thanks
Alexander

Parents
  • Is it possible to create such a variable at compile time?

    Yes. But you can't initialize the flexible-array element, because it's not really considered part of the struct.

    It would be rather pointless anyway. What good is that flexibility if you're not going to use it, but instead fix the size of that array at compile time?

Reply
  • Is it possible to create such a variable at compile time?

    Yes. But you can't initialize the flexible-array element, because it's not really considered part of the struct.

    It would be rather pointless anyway. What good is that flexibility if you're not going to use it, but instead fix the size of that array at compile time?

Children