On Monday, 1 February 2016 at 12:12:00 UTC, Jonathan M Davis
wrote:
On Monday, February 01, 2016 11:15:40 Namal via
Digitalmars-d-learn wrote:
Sorry guys that I didn't express myself well. I also mixed
some stuff up. What I wanted to ask is this, in c++ this is
valid
int x = 3;
int y = 10;
int arr [x][y];
x,y are known at the compile time and arr is a static array. I
can't do that in D so what is the best way to declare an array
of that size?
If x and y are known at compile time, then you can declare a
static array using them for dimensions. e.g.
enum x = 3;
enum y = 10;
int[y][x] arr;
But x and y must be something that it is evaluated by the
compiler at compile time - e.g. an enum or a static variable. A
local variable that just so happens to be directly initialized
(like in your example) won't work.
If x and y are _not_ known at compile time, then you can't use
the to declare a static array. You'll have to use a dynamic
array. e.g.
auto arr = new int[][](x, y);
- Jonathan M Davis
Thanks alot, I didn't know that way with new.