Título: Arreglos Publicado por: angeljonh en 20 Agosto 2017, 02:16 am Tengo una duda con un arreglo, porque el iterador me da 4, a que se debe, AYUDA?
Código: //Arreglo/error.cpp/ Título: Re: Arreglos Publicado por: ivancea96 en 20 Agosto 2017, 13:04 pm 'i' debería darte 3. Si da 4, es por el error que te comento ahora:
La tercera vez que asignas al arreglo ese 4, pusiste ++i. Por tanto, estás asignando a la posición 3 en vez de a la 2. Tienes que poner "i++" o "i" asecas ahí. "++i" incrementa primero, con lo que sale del array. El por qué de que 'i' te de 4 se debe a que la variable 'i' puede estar colocada justo después del array en memoria. Por tanto, al acceder a arreglo[3], estás accediendo sin querer a 'i'. Esto es algo dependiente del compilador, así que simplemente corrige el problema y nunca accedas a un array fuera de sus límites. Título: Re: Arreglos Publicado por: angeljonh en 20 Agosto 2017, 18:05 pm Como el arreglo es memoria contigua, probablemente el compilador asigna la variable e inmediatamente después del arreglo, por lo tanto al acceder a esa dirección de memoria con el arreglo[3]=4(invalido), accede al valor de i y por eso te muestra eso u otra razón podría ser que la memoria que viene justo después del arreglo[2], el SO te la haya asignado al programa, por lo tanto la puedes manejar aunque estés fuera de los índices de tu arreglo.
Título: Re: Arreglos Publicado por: ivancea96 en 20 Agosto 2017, 18:07 pm Mmm? Te estás auto-respondiendo? No entiendo el comentario xD
Título: Re: Arreglos Publicado por: angeljonh en 20 Agosto 2017, 18:16 pm asi es ya verifique mi duda, gracias a todos
|