Member 12928713 Ответов: 1

Вставка значений в массив точек данных приводит к сбою приложения


Я пытаюсь вставить информацию о своей базе данных в 2 массива (arrayWeight и arrayId), и оба массива входят в массив DataPoint (взятый из открытого исходного кода библиотеки GraphView) и
new DataPoint(i,j);
сделает новую точку данных со значениями i и j.

Во всяком случае, мне удалось заставить код работать с компилятором, но по какой-то причине, когда я запускаю приложение, мое приложение выходит из строя.
Что может быть причиной этой проблемы?

Что я уже пробовал:

собственной точки данных[] getDataPoint() {
если (olddb.проверить()) {
List< olddetails & gt; details = olddb. getDetails();
двойной[] arrayWeight = новый двойной[olddb.getDetailsCount()];
тип int[] arrayId = новый тип int[olddb.getDetailsCount()];
for (oldDetails cn : details) {//добавление весов и идентификаторов всех времен в массив.
двойной Нум = СN.getWeight();
инт ИД = СП.getId();
for (int i = arrayWeight.длина; i > 0; i--) {
arrayWeight[i] = num;
arrayId[i] = id;
}
}
Точки данных[] ДП = новый Datapoint[olddb.getDetailsCount()];
for (int i = 0; i < arrayId.длина; i++) {
for (int j = 0; j < arrayWeight.длина; j++)
dp[i] = новая точка данных(i, j);
}

вернуться ДП;
}
ещё {
DataPoint[] dp = новая точка данных[]{
новая точка данных(0, 0)
};
вернуться ДП;
}
}





Также у меня есть следующий код, например (он работает):
собственной точки данных[] getDataPoint(){
DataPoint[] dp = новая точка данных[]{
новая точка данных(0,1),
новая точка данных (2,5),
новая точка данных(5,5),
новая точка данных(7,4)
};
вернуться ДП;
}

Afzaal Ahmad Zeeshan

Что такое сообщение об ошибке?

Member 12928713

никакого сообщения об ошибке,просто сбой.

1 Ответов

Рейтинг:
2

Richard MacCutchan

for (int i = arrayWeight.length; i > 0; i--) {
arrayWeight[i] = num;
arrayId[i] = id;
}

Пределы массива равны [ 0..длина -1]. Используя значение length в качестве индекса вы пытаетесь получить доступ за пределы массива. Это вызовет различные проблемы, включая сбой вашего приложения.