Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Process terminated with status -1073741819

Ostatnio zmodyfikowano 2015-02-22 14:30
Autor Wiadomość
drudl
Temat założony przez niniejszego użytkownika
Process terminated with status -1073741819
» 2015-02-22 00:10:09
Mam problem z moją grą. Po użyciu tej funkcji:
C/C++
tablica_zderzen & glowny_bohater::ktora_tablice_zderzen_urzyc()
{
    tablica_zderzen & wybrana = obiekt_zwrocony_w_lewo;
    switch( co_robi )
    {
    case 0:
        {
            switch( w_ktora_strone_jest_zwrocony )
            {
            case 0:
                {
                    wybrana = obiekt_zwrocony_w_prawo;
                    break;
                }
            case 1:
                {
                    wybrana = obiekt_zwrocony_w_lewo;
                    break;
                }
            }
            break;
        }
    case 1:
        {
            switch( w_ktora_strone_jest_zwrocony )
            {
            case 0:
                {
                    wybrana = wsk_na_tablice_animacji_obiektow_zwroconych_w_prawo[ przebieg_animacji ];
                    break;
                }
            case 1:
                {
                    wybrana = wsk_na_tablice_animacji_obiektow_zwroconych_w_prawo[ przebieg_animacji ];
                    break;
                }
            }
            break;
        }
    case 2:
        {
            wybrana = obiekt_zwrocony_w_lewo;
            break;
        }
    }
    return wybrana;
}
gra zamyka się z błędem. Gra działa normalnie, ale kiedy wychodzę z głównej pętli po naciśnięciu klawisza escape pojawia się ten błąd:
Process terminated with status -1073741819. Przed użyciem tej funkcji wszystko było w porządku.
P-127039
michal11
» 2015-02-22 00:22:46
Próbowałes debugować ?
P-127040
aksen
» 2015-02-22 00:51:03
stawiałbym na wyjście poza zakres tablicy:  wsk_na_tablice_animacji_obiektow_zwroconych_w_prawo[ przebieg_animacji ];

PS.
może uzyc, a nie urzyc? ;)

nie przesadzasz z długością nazw?
P-127042
drudl
Temat założony przez niniejszego użytkownika
» 2015-02-22 11:05:19
Udało się rozwiązać problem przy użyciu tej funkcji:
C/C++
const tablica_zderzen & glowny_bohater::ktora_tablice_zderzen_urzyc()
{
    switch( co_robi )
    {
    case 0:
        {
            switch( w_ktora_strone_jest_zwrocony )
            {
            case 0:
                {
                    return obiekt_zwrocony_w_prawo;
                    break;
                }
            case 1:
                {
                    return obiekt_zwrocony_w_lewo;
                    break;
                }
            }
            break;
        }
    case 1:
        {
            switch( w_ktora_strone_jest_zwrocony )
            {
            case 0:
                {
                    return wsk_na_tablice_animacji_obiektow_zwroconych_w_prawo[ przebieg_animacji ];
                    break;
                }
            case 1:
                {
                    return wsk_na_tablice_animacji_obiektow_zwroconych_w_lewo[ przebieg_animacji ];
                    break;
                }
            }
            break;
        }
    case 2:
        {
            return obiekt_zwrocony_w_lewo;
            break;
        }
        default:
        {
            return obiekt_zwrocony_w_lewo;
        }
    }
}
A jeśli chodzi o długość nazw, to wpływa ona jakoś istotnie na działanie programu?
P-127053
pekfos
» 2015-02-22 11:17:45
A jeśli chodzi o długość nazw, to wpływa ona jakoś istotnie na działanie programu?
Bynajmniej. Ale patrzeć się na taki kod nie da.. Btw, tę funkcję można by zapisać 3 razy krócej, nawet nie ruszając nazw.
P-127056
aksen
» 2015-02-22 13:01:39
C/C++
case 0:
{
    return obiekt_zwrocony_w_prawo;
    break;
}
case 1:
{
    return obiekt_zwrocony_w_lewo;
    break;
}
 

Jak jest "return" to już nie potrzeba "break".

i zostaje tyle:

C/C++
case 0:
return obiekt_zwrocony_w_prawo;
case 1:
return obiekt_zwrocony_w_lewo;
 
PS.
switch cacse ogólnie ma sens w przypadku więcej niż 2 opcji
dla 2 opcji stosowałbym if else

np.

C/C++
if( w_ktora_strone_jest_zwrocony )
     return obiekt_zwrocony_w_lewo;
else
     return obiekt_zwrocony_w_prawo;

 

P-127065
pekfos
» 2015-02-22 14:05:46
Jak jest "return" to już nie potrzeba "break".
C/C++
if( w_ktora_strone_jest_zwrocony == 0 )
     return obiekt_zwrocony_w_prawo;
else
     return obiekt_zwrocony_w_lewo;
Ani else.. Tu zresztą wystarczy sam return. Może skróć raz a dobrze, temat nie tego dotyczył ;)
P-127076
aksen
» 2015-02-22 14:13:40
Poprawka dla pekfosa ;)

C/C++
if( w_ktora_strone_jest_zwrocony )
     return obiekt_zwrocony_w_lewo;

return obiekt_zwrocony_w_prawo;
 
P-127082
« 1 » 2
  Strona 1 z 2 Następna strona