The syntax you are looking for is somewhat cumbersome, but it looks like this:
// Declare test_array_ptr as pointer to array of test_t
test_t (*test_array_ptr)[];
You can then use it like so:
test_array_ptr = &array_t1;
(*test_array_ptr)[0] = new_struct;
To make the syntax easier to understand, you can use a typedef
:
// Declare test_array as typedef of "array of test_t"
typedef test_t test_array[];
...
// Declare test_array_ptr as pointer to test_array
test_array *test_array_ptr = &array_t1;
(*test_array_ptr)[0] = new_struct;
The cdecl utility is useful for deciphering complex C declarations, especially when arrays and function pointers get involved.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…