Run-Time error

Iniciado por Nobody12, 14 Marzo 2011, 23:44 PM

0 Miembros y 2 Visitantes están viendo este tema.

Nobody12

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  ;)

Shell Root

Creo que el mismo error te de lo dice: No haz Declarado/Inicializado la variable 'dig'
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Edu

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

Akai

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

Edu

Akai, me parece q no es eso, fijate lo q le puso el error

Akai

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.

Edu

A claro ya entendi si, tendria q poner un default si para darse cuenta el error