Przesylanie pojedynczego elementu tablicy do funkcji
Ostatnio zmodyfikowano 2016-03-26 21:47
lukasz427 Temat założony przez niniejszego użytkownika |
Przesylanie pojedynczego elementu tablicy do funkcji » 2016-03-26 17:15:03 Witam Wszystkich Mam problem z kompilacja b.prostego programu z przesylaniem pojedynczego elementu tablicy do funkcji.Chodzi mi o to aby element d[2] ktorego wartosc wynosi 30 zostal pomnozony razy 5. Gdy przesylam cala tablice wszystko jest o.k. Dodam ze ucze sie z "Symfonii C++" i zastanawiam sie czy to moze standard sie zmienil? Przykladowo p.Grebosz napisal ze taki przesylanie odbywa sie w ten sposob: fff(tab[38]); Z gory b. dziekuje i sory za brak polskich znakow. #include<iostream> using namespace std;
long x5( int d[] ); int main()
{ const int rozmiar_tablicy = 4; int d[ rozmiar_tablicy ] = { 10, 20, 30, 40 }; cout << d[ 2 ] << endl; x5( d[ 2 ] ); }
long x5( int d[] ) { d[ 2 ] = d[ 2 ] * 5; cout << endl << "A teraz d[2] = " << d[ 2 ] << endl; }
Pojawia sie blad przy wywolaniu funkcji tresci: error: initializing argument 1 of 'long int x5(int*)' oraz error: initializing argument 1 of 'long int x5(int*)' |
|
Gibas11 |
» 2016-03-26 18:04:04 Pozbądź się [] i dopisz przed nazwą parametru &, ogólnie poczytaj o przekazywaniu przez referencję. |
|
carlosmay |
» 2016-03-26 18:09:00 zastanawiam sie czy to moze standard sie zmienil? |
Nic się nie zmieniło. Przekazujesz do funkcji konkretny element (wartość), więc argumentem funkcji powinna być "zwykła" wartość, nie tablica. |
|
lukasz427 Temat założony przez niniejszego użytkownika |
Dzieki bardzo. » 2016-03-26 21:47:26 Czyli moja konstrukcja deklaracji oraz definicji jest rowniez bledna
long x5( int d[] )
w takim przypadku argumentem formalnym, ktory wysyla sie do funkcji nie moze byc tablica. Jak pozmienialem deklaracje i definicje na taka: long x5(int d) i przeslalem argument przez wartosc w wywolaniu to poszlo.
Dzieki |
|
« 1 » |