funkcje problem z tablicą
Ostatnio zmodyfikowano 2016-03-16 00:00
polsky77 Temat założony przez niniejszego użytkownika |
funkcje problem z tablicą » 2016-03-15 22:38:57 W programie glownym chce odwolac sie do funkcji radar. Niestety podczas kompilacji wyskakuje mi bład: ||=== Build: Debug in mecz (compiler: Copy of GNU GCC Compiler) ===| D:\C++\mecz\zawodnik.h||In member function 'int zawodnik::radar(int*, int*, int, int)'Neutral D:\C++\mecz\zawodnik.h|43|error: invalid types 'int[int]' for array subscript| D:\C++\mecz\boisko.h|19|warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [enabled by default]| D:\C++\mecz\boisko.h|20|warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [enabled by default]| ||=== Build failed: 1 error(s), 2 warning(s) (0 minute(s), 0 second(s)) ===| Fragment pliku main: int maly_radarek[ 8 ]; maly_radarek[ 0 ] = tablica[ pozycja - 53 ]; maly_radarek[ 1 ] = tablica[ pozycja - 52 ]; maly_radarek[ 2 ] = tablica[ pozycja - 54 ]; maly_radarek[ 3 ] = tablica[ pozycja - 1 ]; maly_radarek[ 4 ] = tablica[ pozycja + 1 ]; maly_radarek[ 5 ] = tablica[ pozycja ]; maly_radarek[ 6 ] = tablica[ pozycja ]; maly_radarek[ 7 ] = tablica[ pozycja ];
zawodnik::radar( tablica, pozycja, maly_radarek, ruch )
plik zawodnik h, gdzie jest zapisana funkcja radar: int radar( int * tablica, int * pozycja, int maly_radarek, int ruch ) { int i = 0; do { if( maly_radarek[ i ] == 0 ) { ruch = 1; } else { ruch = 0; } i++; } while(( ruch != 0 ) ||( i == 8 ) ); return ruch; }
Napiszcie proszę jak rozwiązac problem? |
|
carlosmay |
» 2016-03-15 22:42:27 int radar( int * tablica, int * pozycja, int maly_radarek, int ruch ) |
W nagłówku tej funkcji nie ma zadeklarowanej tablicy maly_radarek, a używasz jej jak tablicy. I jeszcze są ostrzeżenia, że chcesz używać funkcjonalności z C++11, ale nie pewnie nie są włączone. |
|
polsky77 Temat założony przez niniejszego użytkownika |
» 2016-03-15 23:43:28 Poprawilem nagłowek funkcji: int radar( int * tablica, int * pozycja, int maly_radarek[], int ruch )
blad: D:\C++\mecz\WR .cpp|43|error: invalid conversion from 'int' to 'int*' [-fpermissive]| wywolanie funkcji zostawilem bez zmian: zawodnik::radar( tablica, pozycja, maly_radarek, ruch )
blad: D:\C++\mecz\zawodnik.h|39|error: initializing argument 2 of 'int zawodnik::radar(int*, int*, int*, int)' [-fpermissive]| |
|
michal11 |
» 2016-03-15 23:56:14 zawodnik::radar( tablica, & pozycja, maly_radarek, ruch ) Zgaduję, że pozycja jest zwykłą zmienną, której nawiasem mówiąc nie używasz w funkcji, dlaczego przekazujesz ją przez wskaźnik ? |
|
polsky77 Temat założony przez niniejszego użytkownika |
» 2016-03-16 00:00:22 Dzieki michal11, teraz smiga:) |
|
« 1 » |