Overloading will occur, and passing the pointer to an array of 4 int will not correspond to any of the functions. This is more understandable if you write them as an equivalent form:
void print( int arr[][6], int size ); void print( int arr[][5], int size );
Array N & times; 4 can be decomposed into a pointer to an array of 4 int . And it is well known that 2D arrays having different 2-dimensional dimensions are incompatible.
source share