To add to dkalita's reply, the array decaying into a pointer rule only applies to the first dimension. The pointer version of your 2D array function parameter is int (*)[MAX_COL] . You can change your function in either of these two ways:
void fnGetMatrix(int aiMat[][MAX_COL,int *iNoOfRows,int *iNoOfCol)
void fnGetMatrix(int (*aiMat)[MAX_COL],int *iNoOfRows,int *iNoOfCol)
The size in the first dimension does not matter, but it is easier to copy the array declaration and match it exactly so that you do not need to worry about mismatches like the one you discovered:
void fnGetMatrix(int aiMat[MAX_ROW][MAX_COL],int *iNoOfRows,int *iNoOfCol)