elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema con un vector
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con un vector  (Leído 2,164 veces)
Luchoz95

Desconectado Desconectado

Mensajes: 58


Ver Perfil
Problema con un vector
« en: 2 Abril 2013, 08:28 am »

Hola gente tengo el siguiente problema , miren este source:
Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. int vectorr[4];
  6. int i;
  7. int a=1;
  8. for(i=0;i<=4;i++)
  9. {
  10.     vectorr[i]=i;
  11.     a++;
  12.  
  13. }
  14. for(i=0;i<=4;i++)
  15. {
  16.     printf("Vector [%d] : %d\n",i,vectorr[i]);
  17. }
  18.  
  19. }

me imprime lo sguiente .. :
Código:
Vector [0] : 1
Vector [1] : 2
Vector [2] : 3
Vector [3] : 4
Vector [4] : 6

el error esta en el vector 4 , tendria que haber un 5 como yo quiero , alguien me puede explicar que hago mal ?


En línea

xustyx

Desconectado Desconectado

Mensajes: 213


Ver Perfil
Re: Problema con un vector
« Respuesta #1 en: 2 Abril 2013, 09:19 am »

No es que desarrolle en c++ pero por lo que veo el resultado no tendria ni que ser ese... xD

Para empezar esto te tendria que mostrar a mi entender :S
Código:
Vector [0] : 0
Vector [1] : 1
Vector [2] : 2
Vector [3] : 3
Vector [4] : 4

Aparte ese variable a no la usas para nada solo para incrementarla con lo qual no haces nada XD.

Tienes dos maneras de arreglarlo la primera es cambiar el primer bucle for por esto que es donde creo que te has equivocado.
Código
  1. for(i=0;i<=4;i++)
  2. {
  3.     vectorr[i]=a;
  4.     a++;
  5. }
  6.  

Y la otra un poco mejor es no usar la variable a.
Código
  1. for(i=0;i<=4;i++)
  2. {
  3.     vectorr[i]=i+1;
  4. }
  5.  


En línea

do-while


Desconectado Desconectado

Mensajes: 1.276


¿Habra que sacarla de paseo?


Ver Perfil
Re: Problema con un vector
« Respuesta #2 en: 2 Abril 2013, 11:50 am »

¡Buenas!

Tambiñen te estas saliendo de rango. Si declaras tu vector con dimensión 4, solo tiene las posiciones 0, 1, 2 y 3. Si intentas acceder a la posición 4 te estas saliendo de la memoria asignada al vector y estarás accediendo a una posición de memoria que no sabemos que información ni que permisos tiene, así que acceder a esa posición incluso puede llegar a darte un error de ejecución (en el mejor de los casos, en el peor puedes estar sobreescribiendo valores de otras variable y obtener efector colaterales extraños)

¡Saludos!
En línea

- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!
Luchoz95

Desconectado Desconectado

Mensajes: 58


Ver Perfil
Re: Problema con un vector
« Respuesta #3 en: 2 Abril 2013, 17:54 pm »

aah ahora entienedooo !! , entonces puede ser que el loco de este video este equivocado ? ...

porque dice que vector[4] tiene 5 lugares ... , esta mal lo que dice o no ?
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Problema con un vector
« Respuesta #4 en: 2 Abril 2013, 18:32 pm »

entonces puede ser que el loco de este video este equivocado ?
Correcto. Ese array tiene cuatro elementos.

Con el programa tal como esta (tu primer mensaje) no hay forma de obtener la salida que mencionas. Supongo lo modificaste y al ejecutarlo era mas o menos así:
Código
  1. #include <stdio.h>
  2.  
  3. int main(void)
  4. {
  5.   int i;
  6.   int a = 1;
  7.   int vectorr[4];
  8.  
  9.   for (i = 0; i <= 4; i++){
  10.      vectorr[i] = a;
  11.      a++;
  12.   }
  13.  
  14.   for (i = 0; i <= 4; i++)
  15.      printf ("Vector [%d] : %d\n", i, vectorr[i]);
  16.  
  17.   return 0;
  18. }

Despues de compilar con MS Visual C++ 2008 Express al ejecutarlo su salida es:
Código:
Vector [0] : 1
Vector [1] : 2
Vector [2] : 3
Vector [3] : 4
Vector [4] : 6

Y con otros compiladores se puede obtener el mismo efecto cambiando el orden de las declaraciones.

Por ultimo si quieres aprender bien mejor consigue un buen libro (mas foros de soporte como este).

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con vector en C
Ejercicios
Siuto 2 5,301 Último mensaje 18 Octubre 2005, 19:23 pm
por Kpax
Problema con vector y applet
Java
H4CKO_R 2 2,599 Último mensaje 24 Mayo 2009, 13:34 pm
por Aeros
Problema con ordenar un vector!
Programación C/C++
GregoryH 1 2,597 Último mensaje 27 Noviembre 2010, 21:49 pm
por Samnov
Problema con vector y direcciones
Programación C/C++
OnLOL 6 5,718 Último mensaje 23 Noviembre 2010, 00:41 am
por OnLOL
Problema con std::vector y static
Programación C/C++
anonimo12121 0 1,578 Último mensaje 10 Junio 2013, 23:59 pm
por anonimo12121
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines