0

I'm trying to compare a sensor value with the values saved in a jagged array (26 saved possible cases, 5 fingers, 3d vector for each finger) When I'm defining the values for the array, I can set the value of gestures[0] without any problems, but as soon as I start defining gestures[1], I get an IndexOutOfRange exception.

Also, are jagged arrays good for this purpose (array of arrays of 3d vectors)?

public class Signs
{
public static double[][][] gestures = new double[26][][];

    public void Define()
    {


        gestures[0] = new double[5][];
        gestures[0][0] = new double[3] { 0.15, 0.97, -0.21 };
        gestures[0][1] = new double[3] { -0.56, -0.81, -0.18 };
        //...
        gestures[0][5] = new double[3] {-0.21,0.44,0.2}



        gestures[1] = new double[5][]; //IndexOutOfRange exception
        gestures[1][0] = new double[3] { 0.21, 0.96, -0.21 };
        gestures[1][1] = new double[3] { 0.19, 0.96, 0.21 };
        //...
Nicolás de Ory
  • 614
  • 9
  • 31
  • 1
    I would say that the Index Out Of Range is thrown in the line _gestures[0][5] = new double[3] {-0.21,0.44,0.2}_ – Steve Jun 05 '16 at 15:32

1 Answers1

2

The problem is in this line

gestures[0][5] = new double[3] {-0.21,0.44,0.2}

You defined an array with length 5 (gestures[0] = new double[5][];)

So max index is 4 (0-4)

Aleksey L.
  • 35,047
  • 10
  • 74
  • 84