Thread overview | |||||
---|---|---|---|---|---|
|
January 14, 2009 Dynamic multi-dimensional arrays | ||||
---|---|---|---|---|
| ||||
Having a small "problem" here: (Tile is a struct) Tile[][] tiles = new Tile[85][85]; gives me Error: cannot implicitly convert expression (new Tile[85u][](cast(uint)85)) of type Tile[85u][] to Tile[][] I'm trying to understand why that error occurs. |
January 14, 2009 Re: Dynamic multi-dimensional arrays | ||||
---|---|---|---|---|
| ||||
Posted in reply to Hoenir | On Wed, 14 Jan 2009 20:32:48 +0100, Hoenir wrote:
> Having a small "problem" here:
> (Tile is a struct)
>
> Tile[][] tiles = new Tile[85][85];
>
> gives me
> Error: cannot implicitly convert expression (new
> Tile[85u][](cast(uint)85)) of type Tile[85u][] to Tile[][]
>
> I'm trying to understand why that error occurs.
D interprets a new expression with an array index as:
new T[x]
means create a new dynamic array of type T with x elements. Your T is interpreted as:
Tile[85], i.e. a static array.
it's not well known, but you can do this for what you want:
Tile[][] tiles = new Tile[][](85, 85);
-Steve
|
January 14, 2009 Re: Dynamic multi-dimensional arrays | ||||
---|---|---|---|---|
| ||||
Posted in reply to Steve Schveighoffer | Steve Schveighoffer schrieb:
> D interprets a new expression with an array index as:
>
> new T[x]
>
> means create a new dynamic array of type T with x elements. Your T is interpreted as:
>
> Tile[85], i.e. a static array.
>
> it's not well known, but you can do this for what you want:
>
> Tile[][] tiles = new Tile[][](85, 85);
>
Thanks, that works :)
|
Copyright © 1999-2021 by the D Language Foundation