[C++] Program przestaje działać
Ostatnio zmodyfikowano 2013-02-22 20:50
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 : ++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 ) { 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. |
|
DejaVu |
» 2013-02-22 18:35:25 Wyjście poza zakres tablicy: Elementy_ciagu[ liczba_elementow - i ];
|
|
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) |
|
« 1 » |