I don't quite understand where the error is here:
int *parr[22]; // Array of int* pointers
parr[0] = ptr1;
parr[1] = ptr2;
//...
int *(*pparr)[22]; // A pointer to a int* array[22]
pparr = parr; // ERROR
the error tells me error C2440: '=' : cannot convert from 'int *[22]' to 'int *(*)[22]'
how come that the types are not equal? The name of the array should be equal to a reference to the first element of the array, something like
parr => &parr[0]
so the line seems right to me