This is not a valid C declaration. First, the type of a
is missing. But worse than that, it's as if (*af[10])(int , *a[10][10])
was returning a function (which is impossible).
Maybe you meant:
int (*(*af[10])(int , int *a[10][10]))(int,int)
Which would make af
an array of 10 pointers to function receiving int
and an array of 10 arrays with 10 pointers to int
, and returns a pointer to function receiving two int
s and returning an int
.
EDIT:
Looks like the correct line is:
int (*af[10])(int ,int (*a[10][10])(int,int))
This makes af
an array of 10 pointers to function receiving 2 parameters and returning int
. The first parameter is an int
, and the second is a multi-dimensional array (10x10) or pointers to function receiving 2 int
s and returning an int
.
In the future, you might want to check out cdecl.org to confirm your guess.