But if you do that, then what happens if you have a const int array1[2][3]? :D

One way out might be to wrap it in a struct:

struct array2d
{
int elements[2][3];
};

void...