declaration/initialization of multidimensional arrays
Tyro[17]
nospam at home.com
Sun Nov 18 16:47:16 PST 2012
What is the proper way to declare a multidimensional array?
In Java, I can do:
double[][] a = new double[M][N];
D does not allow this because of two reasons.
1) M & N are variables and cannot be read at compile time even if they
are explicitly initialized.
Error: variable N cannot be read at compile time (sawalks)
2) double[17][17] is a static array and cannot be used to initialize a
dynamic array.
Error: cannot implicitly convert expression (new double[17LU][](17LU))
of type double[17LU][] to double[][] (sawalks)
Assigning a length and then trying to access the values obviously will
not work:
double[][] a;
a.length = M * N;
a[i][j] = 17; // core.exception.RangeError at sawalks(19): Range violation
So what is the proper way to do this in D?
Thanks
More information about the Digitalmars-d-learn
mailing list