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

funkcje problem z tablicą

Ostatnio zmodyfikowano 2016-03-16 00:00
Autor Wiadomość
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:


C/C++
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:



C/C++
int radar( int * tablica, int * pozycja, int maly_radarek, int ruch )
{
    int i = 0;
    do {
        if( maly_radarek[ i ] == 0 ) { ruch = 1; } // tutaj wyskakuje blad
        else { ruch = 0; }
        i++;
    }
    while(( ruch != 0 ) ||( i == 8 ) );
   
    return ruch;
}

Napiszcie proszę jak rozwiązac problem?
P-146076
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.
P-146077
polsky77
Temat założony przez niniejszego użytkownika
» 2016-03-15 23:43:28
Poprawilem nagłowek funkcji:

C/C++
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:

C/C++
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]|


P-146079
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 ?
P-146080
polsky77
Temat założony przez niniejszego użytkownika
» 2016-03-16 00:00:22
Dzieki michal11, teraz smiga:)
P-146081
« 1 »
  Strona 1 z 1