Greg0r Napisano Marzec 12, 2015 Zgłoś Napisano Marzec 12, 2015 Cześć, Mam pewien problem gdyż stworzyłem macierz za pomoą konstrukcji: double** wyzn; wyzn=new double*[3]; for(int i=0;i<3;i++) { wyzn[i]=new double[3]; } przekazuje tą macierz do funkcji: double wyznacznik(double** tab, int i, int j) gdzie i-ity wiersz , j-jota kolumna I teraz w tej funkcji chciałbym się dostać do itego wiersza i jtejkolumny. Nie było problemu z tablicą jednowymiarową gdyż odwołanie do danej komórki wyglądało tak : *(tab+i) = 1000; gdzie i- ita komórka proszę o pomoc :) Cytuj
Mavo Napisano Marzec 12, 2015 Zgłoś Napisano Marzec 12, 2015 Odwołanie które chcesz zrobić będzie wyglądało tak: *(*(tab+i)+j) = 1000; Ale polecam nauczyć się zapisu tablicowego (jest czytelniejsz): tab[i][j] = 1000; Cytuj
Greg0r Napisano Marzec 12, 2015 Autor Zgłoś Napisano Marzec 12, 2015 Tak wiem, że jest czytelniejsze, lecz nie wiem jak przekazać do funkcji tablice dwuwymiarową. void funkcja( double tab[][]) jest złą deklaracją, jakiś pomysł ? Cytuj
Mavo Napisano Marzec 13, 2015 Zgłoś Napisano Marzec 13, 2015 Wcześniej wspomniałem o użyciu zapisu tablicowego w kontekście wskażników, najlepiej pokaże na przykładzie: double wyznacznik(double** tab, int i, int j) { return tab[i][j] = 1000; } Tak jest czytelniej niż tak: double wyznacznik(double** tab, int i, int j) { return *(*(tab+i)+j)=1000; } Można też pozbyć się całkowicie wskaźników i pracować na samych tablicach. Aby przekazać taka tablicę do funkcji musisz określić wcześniej jej wielkość, przykład: double usatwTab(double tab[10][10], int i, int j) { return tab[i][j] = 2.5; } Cytuj
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.