October 01, 2005
I've searched the archive and couldn't see a working solution for how to initialize a rectangular/multi-dimensional array. I get an ArrayBoundsError when attempting to access it.

Here's my code:

    float[][] matrix = new float[][5];
    for (int i = 0; i < 5; i++) {
        matrix[i].length = 5;
    }
    matrix[0][0] = 1f;
    matrix[1][1] = 1f; // ArrayBoundsError here

However, if I change my code as follow, it works.

    matrix[0][0] = 1f;
    matrix[1].length = 5;
    matrix[1][1] = 1f;

Haven't I already set the length of the array in my for loop earlier? What's going on?

Thanks.


October 01, 2005
"John C" <johnch_atms@hotmail.com> wrote in message news:dhlsu7$652$1@digitaldaemon.com...
> I've searched the archive and couldn't see a working solution for how to initialize a rectangular/multi-dimensional array. I get an ArrayBoundsError when attempting to access it.
>
> Here's my code:
>
>    float[][] matrix = new float[][5];
>    for (int i = 0; i < 5; i++) {
>        matrix[i].length = 5;
>    }
>    matrix[0][0] = 1f;
>    matrix[1][1] = 1f; // ArrayBoundsError here
>
> However, if I change my code as follow, it works.
>
>    matrix[0][0] = 1f;
>    matrix[1].length = 5;
>    matrix[1][1] = 1f;
>
> Haven't I already set the length of the array in my for loop earlier? What's going on?
>
> Thanks.

Ok, ignore this. It was a typo in my code.