Incrementar arrays dinámicamente

Moderador: iuav

Temas relacionados: Java, JavaBeens, JBuilder, JDK, Applets, etc

Incrementar arrays dinámicamente

Notapor Bitico » Sab Jun 24, 2006 5:14 pm

public void SetNotas(int pNotas)
{
if (CantReal < Notas.length)
{
Notas[CantReal] = pNotas;
CantReal++;

}
else
{
int TempNotas[] = new int [3];
for (int i = 0; i < CantReal; i++)
{
TempNotas[i] = Notas[i];

}
Notas = new int[Notas.length * 2];
//AHORA VUELVO A COPIAR HACIA EL ARREGLO REDIMENCIONADO
//LAS NOTAS QUE YA POSEIA.
for (int i = 0; i < CantReal; i++)
{
Notas[i] = TempNotas[i];

}
//Y AHORA ES QUE AGREGO EL ELEMENTO NUEVO INTRODUCIDO.
Notas[CantReal] = pNotas;
CantReal++;

}
}

Este código anterior me da error en esta líena:
TempNotas[i] = Notas[i];

El hecho es que yo creo un arreglo inicialmente de 3 elementos, luego en el programa principal, pregunto por cuantos elementos se van a entrar, si la cantidad es igual a 6 (el doble de cuando lo redimenciono) no hay problemas, pero si es más de esa cantidad si, alguien me puede ayudar...
Rey
Bitico
Novato
Novato
 
Mensajes: 1
Registrado: Jue Jun 08, 2006 7:33 am


Incrementar arrays dinámicamente

Notapor iuav » Mié Sep 06, 2006 2:52 pm

Hola,
Lo que pasa en tu código es que el tamaño de TempNotas es 3 y estás haciendo un recorrido de CantReal veces, eso significa que CantReal no necesariamente es 3 y cuando es mayor a 3 hay un desbordamiento de índices del arreglo. Para que no te salga el error tendrías que crear un arreglo inicial de TempNotas de tamaño Notas.length y hacer un recorrido Notas.length veces. Para el segundo recorrido también hay un desbordamiento porque los tamaños del arreglo no son los mismos, para ello puede hacer un recorrido de TempNotas.length veces.

Saludos
_i
Luis
_a
_v
iuav
Colaborador
Colaborador
 
Mensajes: 23
Registrado: Jue Jun 05, 2003 1:39 pm
Ubicación: Juli


Notapor Vicitor2006 » Sab Jun 09, 2007 8:47 pm

Intenta poniendo un try

Código: Seleccionar todo
  1.  

  2. try

  3.    {

  4.       //Codigo que da error

  5.    }

  6. catch

  7.    {

  8.       //codigo *puede estar vacio

  9.    }

  10.  

Estoy aki para aprender
Imagen
Avatar de Usuario
Vicitor2006
Usuario Muy Activo
Usuario Muy Activo
 
Mensajes: 127
Registrado: Mié May 23, 2007 11:38 am


    

Volver a Java

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados

cron