You have
typedef struct { int num ; } NUMBER ;
which is short for
struct anonymous_struct1 { int num ; }; typedef struct anonymous_struct1 NUMBER ;
You now have two equivalent types:
struct anonymous_struct1 NUMBER
You can use both of them, but anonymous_struct1 is in the struct namespace and there must always be a struct for this. (This is one significant difference between C and C ++.)
So either you just do
NUMBER array[99999];
or you define
typedef struct number { int num ; } NUMBER ;
or simply
struct number { int num ; };
and then do
struct number array[99999];
source share