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.

Reply via email to