Zmienne same zmieniają wartość?
Ostatnio zmodyfikowano 2013-09-10 20:16
czosnek17 Temat założony przez niniejszego użytkownika |
Zmienne same zmieniają wartość? » 2013-09-10 19:58:42 Następny dziwny problem... Cały ten kod pochodzi z main.cpp. void w_enemy( enemy * pow ) { cout << "w_enemy\n"; int x, y, kier, typ; ifstream plik; plik.open( "enemy.txt" ); if( !plik.good() ) return; while( true ) { plik >> x >> y >> kier >> typ; if( plik.good() ) { cout << "petla\n"; cout << " " << x << " " << y << " " << kier << " " << typ << endl; pow->przyp( x, y, kier, typ ); cout << "kierunek = " << pow->kierunek << endl; } else { plik.close(); return; } } }
int lpotwr = 10; enemy * potwor; potwor = new enemy[ 10 ];
w_enemy( potwor ); cout << "-----------\n"; for( int i = 0; i != 9; i++ ) { cout << potwor[ i ].kierunek << endl; } cout << "-----------\n"; Sleep( 10000 );
W konsoli dostaję takie coś: w_enemy petla 3 2 3 3 kierunek = 3 petla 3 4 2 1 kierunek = 2 petla 2 2 1 3 kierunek = 1 petla 1 3 2 2 kierunek = 2 petla 6 6 1 3 kierunek = 1 petla 8 2 2 3 kierunek = 2 petla 5 5 3 3 kierunek = 3 //tu widać, że zmienne kierunek mają prawidłową wartość ----------- 3 -1 -1 -1 -1 -1 -1 -1 -1//a tu już nie, pomiędzy tymi miejscami w kodzie nie modyfikuję tych zmiennych -----------
Jak definiuję tablicę w zwykły sposób, do wtedy jest 0. Próbowałem rebuild i nic. Wtf? |
|
DejaVu |
» 2013-09-10 20:04:10 Ten kod w żadnym przypadku nie będzie poprawny, ponieważ wszystko odczytujesz z pliku do pierwszego elementu tablicy. |
|
czosnek17 Temat założony przez niniejszego użytkownika |
» 2013-09-10 20:16:31 Jak wracam ze szkoły to nie myślę... Dzięki. |
|
« 1 » |