Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Fallo al generar variables con un for

Estas en el tema de Fallo al generar variables con un for en el foro de C/C++ en Foros del Web. Hola compañeros Haciendo algo más complejo que lo que os muestro, me topo con el siguietne problema Necesito generar variables con un for, en función ...
  #1 (permalink)  
Antiguo 24/03/2012, 05:04
 
Fecha de Ingreso: marzo-2009
Mensajes: 395
Antigüedad: 15 años, 1 mes
Puntos: 11
Fallo al generar variables con un for

Hola compañeros

Haciendo algo más complejo que lo que os muestro, me topo con el siguietne problema

Necesito generar variables con un for, en función de el número de variables que se vayan a usar. Para ello saco por pantalla la pregunta: "Cuantas variables quieres?", recogiendo con nvariable el número de variables.
Código:
    int i,nvariable;
    cout << "Cuantas variables quieres?";
    cin >> nvariable;
con un for, desde 0 hasta <nvariable voy creando las variables y dandole entrada:

Código:
for(i=0;i<nvariable;i++){
                             int nvariable[i];
                             cin >> nvariable[i];                        
                             }
Hasta aquí el código funciona bien.

EL problema reside en que si en otro punto del programa quiero mostrar esas variables, de la siguietne manera:

Código:
for(i=0;i<nvariable;i++){
                             
                             
                             cout <<nvariable[i]<<endl; 
                             }
Me da error al compilar. ¿Cómo puedo solucionarlo? Gracias
  #2 (permalink)  
Antiguo 24/03/2012, 19:38
Avatar de cristian_qc  
Fecha de Ingreso: abril-2011
Mensajes: 43
Antigüedad: 13 años
Puntos: 8
Respuesta: Fallo al generar variables con un for

Código C++:
Ver original
  1. {
  2.    int nvariable[i];
  3.    cin >> nvariable[i];
  4. }
En esta parte, por cada ciclo del for creas un vector( nvariable ) de i cantidad de elementos, y le estas asignando un valor ( ingresado por el usuario ) a un elemento del vector que no existe, porque el último elemento es i-1.
Es decir que es completamente incorrecto lo que hiciste.

Para hacer lo que pedís hay que usar memoria dinámica, o en el peor caso crear un vector con una cantidad de elementos por defecto. Esto último es bastante malo, pero es una alternativa si no sabés usar memoria dinámica.

Etiquetas: fallo, funcion, int, programa, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:01.