1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
typedef char *(*ArrayOfCharPtr)[];
 
ArrayOfCharPtr func()
{
    static char str[] = "Hello";
    static char* ret[] = {str};
    return &ret;
}
 
auto funcptr = &func;
auto funcptrptr = &funcptr;
 
int main()
{
    char *(*(**foo[][8])())[] = {
        {funcptrptr, funcptrptr, funcptrptr, funcptrptr, funcptrptr, funcptrptr, funcptrptr, funcptrptr},
        {funcptrptr, funcptrptr, funcptrptr, funcptrptr, funcptrptr, funcptrptr, funcptrptr, funcptrptr}
    };
    return 0;
}
 
cs