我在类中声明了一个二维数组“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;
}
}
}
}
我得到一个超出界限的List索引:此行为0:
S[i][j] = 0;
似乎没有正确调用List,
有人可以告诉我有什么问题吗?
谢谢
答案 0 :(得分:1)
我对顶点代码没有任何经验,但我猜你没有在代码的其他地方初始化List,或者至少没有初始化内部List。
使用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;
}
}
}