What does the (*) in (int (*)[30]) mean?

c

Solution

It means, roughly, "is a pointer".

int (*b)[30]

This means "`b` is a pointer to an array of 30 integers".

(int (*) [30])

This means "cast to a pointer to an array of 30 integers".

Problem

What does `(int (*)[30])` mean in C? For instance, in: ``` int (*b)[30] = (int (*) [30]) malloc(30 * sizeof(int [20])); ```

Original source