喜悦国际村 » JAVA/C/C++ » 还是关于零长度数组1

页: [1]
lee_c2004-11-30 09:00 AM
还是关于零长度数组1

我在前面的描述可能不是很清晰.这里重新描述过:
程序想要把4层树形结构表示成不规则静态数组,程序如下:
这里LEVEL1LEN为5,level2len[5]为12,13,6,2,2,level3len[35]为0,...,0(12个0),0,...,0(13个0),4,4,1,0,3,5,0,0,6,6,代表各层元素的子元素个数
String level1channeltreename[]=new String[level1len];
String level1channeltreeid[]=new String[level1len];
String level2channeltreename[][]=new String[level1len][];
String level2channeltreeid[][]=new String[level1len][];
String level3channeltreename[][][]=new String[level1len][][];
String level3channeltreeid[][][]=new String[level1len][][];

filetemp=0;
for(filei=0;filei<level1len;filei++)
{
for(filej=0;filej<level2len[filei];filej++,filetemp++)
{
  level2channeltreename[filei]=new String[level2len[filei]];
  level3channeltreename[filei]=new String[level2len[filei]][];
  if(level3len[filetemp]==0)
  {
   level3channeltreename[filei][filej]=new String[0];
  }
  else
  {
   level3channeltreename[filei][filej]=new String[level3len[filetemp]];
  }
  out.print("level3channeltreename["+filei+"]["+filej+"] length="+level3channeltreename[filei][filej].length+"<br>");
}
}
out.print(level3channeltreename[0][0].length);
输出如下:
level3channeltreename[0][0] length=0
level3channeltreename[0][1] length=0
level3channeltreename[0][2] length=0
level3channeltreename[0][3] length=0
level3channeltreename[0][4] length=0
level3channeltreename[0][5] length=0
level3channeltreename[0][6] length=0
level3channeltreename[0][7] length=0
level3channeltreename[0][8] length=0
level3channeltreename[0][9] length=0
level3channeltreename[0][10] length=0
level3channeltreename[0][11] length=0
level3channeltreename[1][0] length=0
level3channeltreename[1][1] length=0
level3channeltreename[1][2] length=0
level3channeltreename[1][3] length=0
level3channeltreename[1][4] length=0
level3channeltreename[1][5] length=0
level3channeltreename[1][6] length=0
level3channeltreename[1][7] length=0
level3channeltreename[1][8] length=0
level3channeltreename[1][9] length=0
level3channeltreename[1][10] length=0
level3channeltreename[1][11] length=0
level3channeltreename[1][12] length=0
level3channeltreename[2][0] length=4
level3channeltreename[2][1] length=4
level3channeltreename[2][2] length=1
level3channeltreename[2][3] length=0
level3channeltreename[2][4] length=3
level3channeltreename[2][5] length=5
level3channeltreename[3][0] length=0
level3channeltreename[3][1] length=0
level3channeltreename[4][0] length=6
level3channeltreename[4][1] length=6
java.lang.NullPointerException
循环里面的语句执行正常,循环外面的语句打印NULL异常,百思不得其解,请哪位指点一二,不胜感激!

lee_c2004-12-1 02:06 AM
是level2channeltreename[filei]=new String[level2len[filei]];
level3channeltreename[filei]=new String[level2len[filei]][];两行的问题,放到外面一层循环就OK了!


查看完整版本: 还是关于零长度数组1


Powered by Discuz! Archiver 6.1.0  © 2001-2006 Comsenz Inc.
Processed in 0.006114 second(s), 2 queries