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

[C++] Program przestaje działać

Ostatnio zmodyfikowano 2013-02-22 20:50
Autor Wiadomość
Piciupol
Temat założony przez niniejszego użytkownika
[C++] Program przestaje działać
» 2013-02-22 17:09:35
Witam. Mam taki problem(uzywam Code Blocks) ze nie ma zadnych bledow kompilatora, a dopiero po uruchomieniu program po prostu przestaje działać. Jest to test podstawowych funkcji mojej gry i polega na tym ze powinien byc tworzony lancuch z kolorowych(tutaj tylko czarnych kul) i kazda kolejna powinna miec pozycje x z tablicy wspolrzedne[27][2][1] w ktorej zapisalem wlasnie pozycje poszczegolnych elementow w miare dolaczania kolejnych.

Wydaje mi sie ze problem lezy tutaj :

C/C++
++liczba_elementow;
Elementy_ciagu.push_back( KULA( true, liczba_elementow, wspolrzedne[ 0 ][ 0 ][ 0 ], wspolrzedne[ 0 ][ 1 ][ 0 ], kolor ) );
Ciag_TMP.resize( Elementy_ciagu.size() );
for( unsigned int i = 0; i < Elementy_ciagu.size(); ++i )
{
    Ciag_TMP[ i ] = Elementy_ciagu[ liczba_elementow - i ];
}
for( unsigned int i = 0; i < Elementy_ciagu.size(); ++i )
{
    Elementy_ciagu[ i ] = Ciag_TMP[ i ];
}
for( unsigned int i = 0; i < Elementy_ciagu.size(); ++i ) // <-- TUTAJ COS NIE TAK
{
    Elementy_ciagu[ i ].pozycja_x = wspolrzedne[ liczba_elementow - Elementy_ciagu[ i ].indeks ][ 0 ][ 0 ];
    Elementy_ciagu[ i ].pozycja_y = wspolrzedne[ liczba_elementow - Elementy_ciagu[ i ].indeks ][ 1 ][ 0 ];
}
Wektor Elementy_ciagu oraz Ciag_TMP skladaja sie z obiektow "KULA". W zaznaczonej linijce kodu, gdy jest tak jak jest, program odrazu sie zawiesza, gdy zmniejsze .size() o 1 to program wyswietla pierwszy element i sie zawiesza, a gdy w ogole usune cala ta petle z tego miejsca, to program dziala, ale wiadomo wariuje, wyswietla najpierw jeden element na poczatku, pozniej drugi niewiadomo gdzie i dalej nic sie nie dzieje.

Naprawde nie wiem w czym problem, mam nadzieje ze moze zauzwazycie cos co ja przegapilem w glupi sposob lub jakis powazniejszy blad.
P-76716
DejaVu
» 2013-02-22 18:35:25
Wyjście poza zakres tablicy:
C/C++
Elementy_ciagu[ liczba_elementow - i ];
P-76720
RazzorFlame
» 2013-02-22 20:50:58
Piciupol gdybyś chciał to byś znalazł rozwiązanie. Od czego jest Debugger? Sam byłem GREEN w tej sprawie jeszcze pół roku temu ale teraz jest spoko :P (Dziiwne, czy debugger wskazuje tylko 1 rodzaj błędu - SIGSEGV? Kilkanaście razy już mi to pod rząd wyjednało ;p)
P-76741
« 1 »
  Strona 1 z 1