View Single Post
Old 10-01-2005, 13:18   #2
end.is.forever
Senior Member
 
Iscritto dal: Jul 2004
Messaggi: 1578
Codice:
for (i=0; a[i] <= v; i++) {
   b[i] = a[i];
   k++;
}
Quando accedi ad un array attraverso l'indicizzatore devi sempre assicurarti che l'argomento (i in questo caso) sia minore della lunghezza di quell'array.
In questo caso non l'hai fatto, dato che nel for i cresce potenzialmente all'infinito se non trova nessun elemento di a che sia maggiore di v.

Per cui quando tu invochi
Codice:
 visualizza( inserisci(new int[] {7, 8, 10}, 22) ); // (7, 8, 10, 22)
la i supera a.length facendo lanciare l'eccezione.

A prima vista mi sembra che basti sostituire con:
Codice:
for (i=0; a[i] <= v && i < a.length; i++) {
   b[i] = a[i];
   k++;
}
if (i == a.length)
   k++;
end.is.forever è offline   Rispondi citando il messaggio o parte di esso