Array objects can be of two types:
double arr_static[4][2] = {};
double arr_dynamic[][2] = {};
An array can be passed to a function only by reference and can only be of dynamic type:
double arr_a[] = {}; double arr_b[][2] = {}; double arr_c[4][2] = {}; function(arr_a, arr_b, arr_c); } void function(double &arr_a[], double &arr_b[][2], double &arr_c[][2]) { }