我有一个对象数组-本质上是一个对象引用数组。在我所引用的类中,还有另一个引用。我需要初始化此数据结构,但在初始化期间会崩溃。我正在尝试在引用的类中初始化引用,但是它始终为null,因此有些Java“东闭拆西”我还不了解。这似乎很简单,但却令人沮丧。这是一个简单的问困镇题示例:
public class ref1
{
public int myInt
}
public class ref2
{
public ref1 myRef
}
public ref2 buffer[]
int i
// Code to initialize the above data structures:
buffer = new ref2[255]
for (i=0i<255i++)
{
buffer[i] = new ref2()
buffer[i].myRef = new ref1() // (1) ALWAYS returns null????
}
最终,上面的代码将在我具有(1)标记的行上崩溃,并带有“ ArrayOutOfBoundsException”。我在调试器中注意到的第二件事是myRef始终设置为null。为什么无法创建和引轿尺枣用ref1对象?
如果我注释掉标有(1)的行,则没有异常陷阱,因此问题就在那里。
程序的输入语句存在错误:
scanf("%d", a[i])这句代码应该是&a[i],a[i]前需要加上&符号。
除此之外,程序还存在一些可以优化的点:
该毁孝程序没有用到std命名空间的相关对象,最好去掉using namespace std这句。
如果n大于1000,那么纤颤稿a也会数组越界,需洞毕要注意a数组的大小取值,根据题目设置。
输出语句末尾最好加上换行符,这样运行结果的可读性会好一些。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)