Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Nobody12 en 14 Marzo 2011, 23:44 pm



Título: Run-Time error
Publicado por: Nobody12 en 14 Marzo 2011, 23:44 pm
Hola.
Cada vez que intento ejecutar este código me sale error:

Código
  1. int dia, mes, dig, res;
  2.    int ano, ano2, ano3, ano4;
  3.  
  4.    dia=GetDlgItemInt(hDlg, IDC_EDIT1, NULL, FALSE);
  5.    mes=GetDlgItemInt(hDlg, IDC_EDIT3, NULL, FALSE);
  6.    ano=GetDlgItemInt(hDlg, IDC_EDIT2, NULL, FALSE);
  7.  
  8.    ano2=((ano)%(100));
  9.    ano3=((ano2)/(4));
  10.    ano4=((ano2)%(4));
  11.  
  12.    switch(mes)
  13.    {
  14.               case 1:
  15.                    dig=0;
  16.                    break;
  17.               case 2:
  18.                    dig=3;
  19.                    break;
  20.               case 3:
  21.                    dig=3;
  22.                    break;
  23.               case 4:
  24.                    dig=6;
  25.                    break;
  26.               case 5:
  27.                    dig=1;
  28.                    break;
  29.               case 6:
  30.                    dig=4;
  31.                    break;
  32.               case 7:
  33.                    dig=6;
  34.                    break;
  35.               case 8:
  36.                    dig=2;
  37.                    break;
  38.               case 9:
  39.                    dig=5;
  40.                    break;
  41.               case 10:
  42.                    dig=0;
  43.                    break;
  44.               case 11:
  45.                    dig=3;
  46.                    break;
  47.               case 12:
  48.                    dig=5;
  49.                    break;
  50.    }
  51.  
  52.    res=((dia+dig+ano2+ano3)%7);

En concreto el error es:

"Run-Time Check Failure #3 - The variable 'dig' is being used without being initialized."

El código me compila bien, pero mientras está en ejecución no para de salirme continuamente ese error.

A ver si me podéis ayudar  ;)


Título: Re: Run-Time error
Publicado por: Shell Root en 14 Marzo 2011, 23:56 pm
Creo que el mismo error te de lo dice: No haz Declarado/Inicializado la variable 'dig'


Título: Re: Run-Time error
Publicado por: Edu en 14 Marzo 2011, 23:59 pm
Fa me parece raro o se muy poco, prueba poniendo donde declaras la variable dig poniendole ya un valor 0 inicial ya q lo q entiendo q dice el error es q La variable "dig" esta siendo usada sin ser iniciada, asique si haces un int dig = 0: no se puede quejar xD


Título: Re: Run-Time error
Publicado por: Akai en 15 Marzo 2011, 00:03 am
Me temo que posiblemente no se esté realizando la conversión correctamente del texto de tu dialog box a el entero mes.

Prueba a poner un case default en el switch donde inicialices dig a algún valor, y si el error deja de surgir, entonces, tienes acotado entre la conversión de "GetDlgItemInt" y el switch.

Quizá quieras revisar la referencia de GetDlgItemInt (http://msdn.microsoft.com/en-us/library/ms645485(v=vs.85).aspx)


Título: Re: Run-Time error
Publicado por: Edu en 15 Marzo 2011, 00:16 am
Akai, me parece q no es eso, fijate lo q le puso el error


Título: Re: Run-Time error
Publicado por: Akai en 15 Marzo 2011, 00:26 am
Y a mi si me lo parece. No está realizando la comprobación de error puesto que pone el flag de errores a NULL, tampoco comprueba mes, y no tiene un case default. Conclusión: posible caso que se esté dando: mala conversión y que no se de ningún case de switch tal cual está puesto.


Título: Re: Run-Time error
Publicado por: Edu en 16 Marzo 2011, 01:11 am
A claro ya entendi si, tendria q poner un default si para darse cuenta el error