日期:2014-05-18  浏览次数:20711 次

提示说二维数组的索引超出数组的最大下标,找不原因,请高手指点一下啊,谢谢了?
px1 = Chrom.GetLength(0);//获取种群行数
 py1 = Chrom.GetLength(1);//获取列数
以上是我写的获取一个二维数组的行数和列数,(这样获取的行列不知道是否正确?应该注意什么?)
然后在下面的引用当中,老是在for循环语句当中提示错误:索引超出数组下标,(我换大点的数组还是这个问题!)是为什么呢?其中px1是40,py1是19.
f1我定义的是:int[,] f1= new int[40,0]也就是一个列向量。

 px1 = Chrom.GetLength(0);//获取种群行数
  py1 = Chrom.GetLength(1);//获取列数
  //初始化各种约束条件下的负荷损失为零
  for (int i = 0; i < px1; i++)
  {
  f1[i, 0] = 0; fa[i, 0] = 0; fb[i, 0] = 0; fc[i, 0] = 0; fd[i, 0] = 0;
  }
请高手指教!

------解决方案--------------------
int[,] f1 = new int[40, 1];
数组初始化时传入的是数组大小,要比数组下标的最大值大 1