When I edit the flowing code:
int (*p)[2] = new int [2][2]; //it's right.
int (*q)[2] = new int (*)[2]; //it's wrong.
//the wrong message:error: expected primary-expression before ')' token.
//compile by g++ in Code::Blocks,Debug.
I can understand the first one. But,why can't the second one work?
How does the compiler match the type? Obviously,it doesn't match like the general condition, and there must be some limits for new. I think I ignore some principles.