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

Unbounded Arrays and the sizeof operator

I take it using sizeof() on a array that is unbounded is a problem (I am getting sizeof returns size of type 0 warnings).

I have defined a constant array of pointers unbounded IE

#define CCHARPTR code char *
CCHARPTR numerous_strings[] =
{
"string1",
"string2",
"string3.5"
};


If I wished to know the number of entries in numerous_strings I thought I could do this

(sizeof(numerous_strings)/sizeof(CCHARPTR))


Obviously I was wrong since the compiler warns sizeof(numerous_strings) is zero. How can I get the size of this array because I would like to save time in having to write a 'magic' number for the number of numerous_strings. Sounds simple, unbounded arrays seem to be what it has issues with. Suggestions anyone?

Parents
  • How do you get the string you want from the table? Do you have some kind of index that describes each string? If so, you could do something like this and use NUM_STRINGS as the number of strings defined.

    typedef enum
    {
       STRING1 = 0,   // 0
       STRING2,       // 1
       STRING3,       // 2
       NUM_STRINGS    // 3
    };
    

Reply
  • How do you get the string you want from the table? Do you have some kind of index that describes each string? If so, you could do something like this and use NUM_STRINGS as the number of strings defined.

    typedef enum
    {
       STRING1 = 0,   // 0
       STRING2,       // 1
       STRING3,       // 2
       NUM_STRINGS    // 3
    };
    

Children
No data