What\'s the purpose of ANYSIZE_ARRAY
, located in WinNT.h?
I see an MSDN blog post about it from 2004 but it doesn\'t make sense to me.
I assume you are talking about this blog post.
It is often used when a variable-sized (unknown at compile time) array is part of a struct:
typedef struct {
int CommonFlags
int CountOfThings;
THING Things[ANYSIZE_ARRAY]; //Things[1];
} THINGSANDFLAGS;
To work with those structures you often first call the desired API to get the size of the data, then allocate a block of memory big enough and finally call the same API again so it can fill in the data...
From this page:
In C, a variable-size array is declared as
a[1]
ora[ANYSIZE_ARRAY]
, whereANYSIZE_ARRAY
is defined as1
. Then it is used as if it were bigger.