0

我在一个类中声明了一个二维数组“S”,如下所示:

public class TestClass {

private static final List<List<Long>> S = new List<List<Long>>{};

Public TestClass {
}


public void setKey(string key, string keylength) {
integer i, j

for ( i = 0; i < 4; ++i ){        
        for ( j = 0; j < 256; ++j ){
   S[i][j] = 0;
}
}
}
} 

我得到一个列表索引越界:0 在这一行:

 S[i][j] = 0;

似乎它没有正确调用列表,

有人可以告诉我有什么问题吗?

谢谢

4

1 回答 1

1

我在顶点代码方面没有任何经验,但我猜你没有在代码的其他地方初始化列表,或者至少没有初始化内部列表。

将其放在 C# 或 Java 等知名语言的上下文中,初始化将如下所示:

// ** NOTE: Pseudo-code **
// Loop over the outer List first
for ( i = 0; i < 4; ++i ){        
    // Initialise each List index as a new List, storing 256 integers.
    S[i] = new List<long>(new int[256]);

        // Loop over the newly initialised inner List, setting the int values.
        for ( j = 0; j < 256; ++j ){
            S[i][j] = 0;
        }
    }
}
于 2013-06-03T18:11:20.653 回答