Java array: out of bounds - Syntaxfrage zum Array

The1337x

Cadet 2nd Year
Registriert
Nov. 2012
Beiträge
31
Hallo,

bin immernoch fleißig am Schreiben von meinem Semesterprojekt.
schreibe gerade eine Methode, die einzelne Intensitätswerte aus einem Bild in eine Array packen soll und das ist gerade mein Problemkind:

...

//erstelltes Abgleichsarray für das linke Bild
int[] array_l = new int[searchedarea];
int difference = 10000;
int i = 0;


for (int x = x_l; x <= x_l+searched_x; x++ ){
for (int y = y_l; y <= y_l+searched_y; y++ ){
int intensity = left.get(x,y);
array_l = intensity;
i++;
}
}
..
ich hab das Array außerhalb der Schleife definiert, dabei besteht seachedarea aus einem Int Wert von x*y und wurde vorher auch ausmultipliziert (um eine einfache Matrix zu erhalten).

Jetzt habe ich das Problem er sagt mir out of bounds, wenn ich mein i jedoch in die for schleife mit reinnehme dann schreibt er mir immer nur die x werte voll und überschreibt sie dann anschließend wieder.... :/

ist schon ein wenig Spät, vllt. denke ich gerade einfach komisch.
Thx 4 Help! =)
 
und wie groß ist searchedarea? Glaskugeln sind leider aus.

Müsste ja (searched_x + 1) * (searched_y + 1) sein... vermutlich fehlt aber beides mal das +1 - warum? Du prüfst auf <= und nicht auf <.

Beispiel:
x_l = 10, und searched_x = 10
dann hast du 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 => das sind nicht 10 sondern 11 Werte...

(typischer Fall von off-by-one-error würde ich sagen)
 
du hast recht! dabei war es so einfach.... :/
die <= sind von vorherigem code übrig geblieben(von Mittelwert und Varianz)
Vielen Dank! :)
 
Zurück
Oben