为什么这个简单的字符串数组运行时定义不起作用?

b1zrtrql  于 2021-06-29  发布在  Java
关注(0)|答案(2)|浏览(373)

**结束。**此问题需要详细的调试信息。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。

16天前关门了。
改进这个问题

String[] c; 

c = new String[length];

线路 String[] c; 实际上是以前写的,它是类内部的公共变量。已声明变量长度 int 和定义的运行时。它保存0到短正整数之间的值。
调试器在执行该行时显示“c[i]=array reference expected”,然后在执行该行后显示“java.lang.indexoutofboundsexception:无效数组范围:4到4”。最后,一个例外 .getMessage() 等于“长度=4;抛出索引=4“。
我试着定义另一个 String[i] 然后把它复制到原件上,但什么都没变。另外,我尝试过一个元素一个元素地定义c,但实际上没有给出它的长度,但是当然会抛出错误“尝试写入空数组”。
这个运行时定义有什么问题?事先谢谢!

ssgvzors

ssgvzors1#

根据概念,对于单个数组元素的内存分配,索引从0开始。
所以在这里你可以遍历数组的元素到长度-1。

krugob8w

krugob8w2#

“长度=4;index=4“如果将长度定义为b4,则只有索引0到3。4个元素,因此您无法访问索引4,该元素的长度必须为5。

相关问题