Greg0r Napisano Marzec 12, 2015 Zgłoś Udostępnij 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 Link do komentarza Udostępnij na innych stronach More sharing options...
Mavo Napisano Marzec 12, 2015 Zgłoś Udostępnij 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 Link do komentarza Udostępnij na innych stronach More sharing options...
Greg0r Napisano Marzec 12, 2015 Autor Zgłoś Udostępnij 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 Link do komentarza Udostępnij na innych stronach More sharing options...
Mavo Napisano Marzec 13, 2015 Zgłoś Udostępnij 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 Link do komentarza Udostępnij na innych stronach More sharing options...
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.