Skocz do zawartości
Puchacz1

[c++] przekazanie do funkcji tablicy wielowymiarowej

Rekomendowane odpowiedzi

a więc mam taką funkcję i potrzebuję utworzoną w niej tablice 2 wymiarową zwrócić (zwrócić adres na jej pierwszy element??). I robię to chyba dobrze ale nie potrafię tego później wywołać w funkcji wypisz3d()

 

int *wyniki(int rozmiar, int tab1, int tab2, int tab3){    int ** tab = new int *[rozmiar];    for(int i=0; i<rozmiar; ++i)    {        tab[i] = new int[rozmiar/2];    }    for(int i=0; i<rozmiar; ++i)    {        for(int j=0; j<3; ++j)        {            if(j==0)            {                tab[i][j] = tab1;            }            else if(j==1)            {                tab[i][j] = tab2;            }            else            {                tab[i][j] = tab3;            }        }    }    return tab[0];}void wypisz3d(int **tab, int rozmiar){    for(int i=0;i<rozmiar;++i)    {        for(int j=0;j<3;++j)        {            cout << tab[i][j];        }        cout << "" << endl;    }}
tutaj tak próbuję to wywołać jednak mi nie wychodzi:

int main(){    int *tab3d = wyniki(6, 1, 2, 3);    wypisz3d(tab3d[0], 6);    return true;}
kompilator wypluwa : invalid conversion from `int` to `int**`

Powiedzcie jak odwołać się prawidłowo do takiej tablicy.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Zmień:

Dodaj wskaźnik

int **wyniki(int rozmiar, int tab1, int tab2, int tab3)
Zwróć wskaźnik na wskaźnik pierwszego wiersza, a nie tylko pierwszy wiersz

return tab;
a tu zmień tak, żeby wszystko działało

int **tab3d = wyniki(6, 1, 2, 3);    wypisz3d(tab3d, 6);

Nie rozumiem tylko tego, najpierw robisz sobie tablice rozmiar na rozmiar/2 a później "for(int j=0; j<3; ++j)" korzystasz tylko z 3 wartości?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...