Matthias Pleh <s...@alter.com> napisał(a):
void foo(char[] a) {}
void bar(char[][] b) {}
int main(string[] args)
{
char[4] a;
char[4][4] b;
foo(a); // OK: implicit convertion
bar(b); // Error: cannot implicitly convert
// char[4u][4u] to char[][]
}
what is the reason for the different behaviour?
I *think* it's because multi-dim static arrays are a strip of contiguous
memory and no length information is held with the data, so if it was
converted to a dynamic array of arrays (who do hold their lengths), there
wouldn't be room for the lengths of the arrays.
What's best to pass such multidimensional arrays?
Good question. Maybe new char[][](4) and point the inner arrays to the
chunks of the static array?
--
Tomek