On 2011-07-04 23:42, Bellum wrote: > Can anyone point me in the right direction for doing something like this > in D: > > char[][] anArray; > int rows, cols; > > ... > > anArray = new char[rows][cols]; > > It isn't possible in this way because "rows cannot be read at compile > time", which seems to me to be the point of dynamic arrays. :P
auto anArray = new char[][](rows, cols); Putting the numbers directly in the brackets tries to create a static array once you get beyond the first dimension. So, auto anArary = new char[4][5]; would create a dynamic array of length for with elements which are static arrays of length 5. If you want it to by dynamic all the way, you need to put the dimensions in the parens like above. Personally, I _never_ put them in the brackets, even when the dynamic array has just one dimension. It's just simpler to always put them in the parens and not worry about it. - Jonathan M Davis
