I assume the OP knows how to pass simple types and how to map them to julia types and only have questions about passing a multidimensional array.
Passing a multidimensional array (or multidimensional array) in C is surprisingly underdocumented AFAICT. I can’t find any clear mention on cppreference (though there’re hints). The best I can find apart from many SO posts that covers parts of the problem each is 23.1: Multidimensional Arrays and Functions .
It might worth mentioning this in our doc. It’s worth noting that int a[2][2] and int a** are completely different types in C even though both of them are dereferenced with a[x][y]. They have very different type layout and cannot be converted to each other.
Passing a multidimensional array (or multidimensional array) in C is surprisingly underdocumented AFAICT
Declaring a C argument type as being [], I believe, is a compiler extension (although probably part of the spec now), and isn’t actually part of the C ABI. Most parsers rewrite any number of [] to * in the argument list following the rules for array-pointer decomposition. This isn’t strictly valid, but the direct interpretation of this syntax (passing an array by-value) isn’t defined in the C standard.
Passing array argument is actually mentioned on cppreference Array declaration - cppreference.com and I just noticed that passing in multi dimensional array is actually also mentioned in there to, which is supported since c99.