One another way is use something like this: import std.array, std.algorithm, std.stdio; auto arr = uninitializedArray!(int[][])(ROWS,COLS); arr.each!"a[]=-1"; writeln(arr);
Dne 6. 2. 2017 8:21 PM napsal uživatel "berni via Digitalmars-d-learn" < digitalmars-d-learn@puremagic.com>: > On Sunday, 5 February 2017 at 21:14:33 UTC, Daniel Kozak wrote: > >> http://stackoverflow.com/questions/24600796/d-set-default- >> value-for-a-struct-member-which-is-a-multidimensional- >> static-arr/24754361#24754361 >> >> >> Dne 5.2.2017 v 21:33 berni via Digitalmars-d-learn napsal(a): >> >>> With X not known at compile time: >>> >>> auto arr = new int[][](X,X); >>>> for (int i=0;i<X;i++) >>>> for (int j=0;j<X;j++) >>>> arr[i][j] = -1; >>>> >>> >>> Is there anything better for this? I mean, the program will fill the >>> array with zeroes, just to overwrite all of them with -1. That's wasted >>> execution time and doesn't feel D-ish to me. >>> >> > Thanks for the link. Looks a little bit hacky... I hoped for something > more straightforward, or at least, if direct initialisation is not possible > something like "arr[][] = -1;" or "arr[0..X][0..X] = -1;" But as far as I > can see now, this does not exist. >