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

Przesylanie pojedynczego elementu tablicy do funkcji

Ostatnio zmodyfikowano 2016-03-26 21:47
Autor Wiadomość
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.

C/C++
#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; //dla sprwdzenia
    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*)'
P-146583
Gibas11
» 2016-03-26 18:04:04
Pozbądź się [] i dopisz przed nazwą parametru &, ogólnie poczytaj o przekazywaniu przez referencję.
P-146585
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.
P-146586
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
P-146594
« 1 »
  Strona 1 z 1