Test Foro de elhacker.net SMF 2.1

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 (cpp) [Seleccionar]
int dia, mes, dig, res;
    int ano, ano2, ano3, ano4;

    dia=GetDlgItemInt(hDlg, IDC_EDIT1, NULL, FALSE);
    mes=GetDlgItemInt(hDlg, IDC_EDIT3, NULL, FALSE);
    ano=GetDlgItemInt(hDlg, IDC_EDIT2, NULL, FALSE);

    ano2=((ano)%(100));
    ano3=((ano2)/(4));
    ano4=((ano2)%(4));

    switch(mes)
    {
               case 1:
                    dig=0;
                    break;
               case 2:
                    dig=3;
                    break;
               case 3:
                    dig=3;
                    break;
               case 4:
                    dig=6;
                    break;
               case 5:
                    dig=1;
                    break;
               case 6:
                    dig=4;
                    break;
               case 7:
                    dig=6;
                    break;
               case 8:
                    dig=2;
                    break;
               case 9:
                    dig=5;
                    break;
               case 10:
                    dig=0;
                    break;
               case 11:
                    dig=3;
                    break;
               case 12:
                    dig=5;
                    break;
    }

    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