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

[SOLUCIONADO] La variable está siendo usada sin ser inicializada.

Estas en el tema de La variable está siendo usada sin ser inicializada. en el foro de C/C++ en Foros del Web. Hola a todos ! Soy totalmente nueva en esto,espero puedan ayudarme :) Mi práctica consiste en el juego Mastermind. El error que me sale dice ...
  #1 (permalink)  
Antiguo 18/07/2014, 11:51
Avatar de anggiebs  
Fecha de Ingreso: julio-2014
Ubicación: Madrid
Mensajes: 35
Antigüedad: 9 años, 8 meses
Puntos: 0
Pregunta La variable está siendo usada sin ser inicializada.

Hola a todos ! Soy totalmente nueva en esto,espero puedan ayudarme :)
Mi práctica consiste en el juego Mastermind.

El error que me sale dice que la variable color no está inicializada .
Yo lo que he hecho es crear una función llamada converNumEnum (convertir de un numero entero a tipo enumerado) ya que al obtener el codigo aleatorio lo que obtenemos es un número entero y tenemos que luego relacionarlo con el enumerado .
En esta función converNumEnum tengo al final el "return color;"
Yo entiendo que al salir de esta función el "color" debería reconocerlo el siguiente paso de la función codigoAleatorio(tCodigo secreto) ,es decir,secreto[i]=color;
Sin embargo es justo ahí donde me señala el error

Estas son mis dos funciones:

tColores converNumEnum(int codeSecreto){
tColores color;
switch(codeSecreto) {
case 0: color = rojo;
break;
case 1: color = azul;
break;
case 2: color = verde;
break;
case 3: color = negro;
break;
case 4: color = granate;
break;
case 5: color = marron;
break;
}
return color;
}

/* Genero un código aleatorio de longitud 4(FICHAS_JUGADA) que luego guardaré en el array tCodigo secreto. */

void codigoAleatorio(tCodigo secreto){
int codeSecreto;
int num[FICHAS_TOTALES];
tColores color;

for (int i = 0 ; i< FICHAS_JUGADA; i++){ //Para cada posición (bucle)

/*Genera un número aleatorio del 0 al 5 con repetición. */
codeSecreto= rand() % FICHAS_TOTALES;
num[i] = codeSecreto;
converNumEnum(codeSecreto); //Llamada a la función anterior

/*Los tipos enumerados se guardan en el array tCodigo secreto. */
secreto[i]=color;
}

//Mostramos el codigo aleatorio en pantalla:
for (int j = 0 ; j< FICHAS_JUGADA; j++){
cout << secreto[j] << " ";
}
}
  #2 (permalink)  
Antiguo 18/07/2014, 12:16
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 9 meses
Puntos: 61
Respuesta: La variable está siendo usada sin ser inicializada.

La variable color de la funcion codigoAleatorio esta definida, pero nunca le das un valor.
El que otra funcion (converNumEnum) tenga una variable del mismo nombre es un accidente. Se trata de otra variable.
Funciona igual como 2 personas pueden tener el mismo nombre y tener distinta edad (por ejemplo).

Lo bueno es que retornas el valor asignado asi que puedes hacer

color = converNumEnum(codeSecreto);

y la variable color de la funcion codigoAleatorio ya tendra su valor asignado
__________________
Visita mi perfil en LinkedIn
  #3 (permalink)  
Antiguo 18/07/2014, 12:49
Avatar de anggiebs  
Fecha de Ingreso: julio-2014
Ubicación: Madrid
Mensajes: 35
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: La variable está siendo usada sin ser inicializada.

Recién estoy aprendiendo esto y ese error me suele aparecer con frecuencia.
Muchas gracias por tu ayuda :)

Etiquetas: c++, inicializar, variable
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 00:37.