Witam
Mam tablice dwu wymiarową
AnsiString tab[5][2] = {
{"aa","a"},
{"bb","b"}
};
jak ja teraz przekazać do niej wskaźnik do funkcji?
Nie powinno być tak?
AnsiString Funkcja(AnsiString **tab, int size)
{
}
Programuje w C++Builder6
Witam
Mam tablice dwu wymiarową
AnsiString tab[5][2] = {
{"aa","a"},
{"bb","b"}
};
jak ja teraz przekazać do niej wskaźnik do funkcji?
Nie powinno być tak?
AnsiString Funkcja(AnsiString **tab, int size)
{
}
Programuje w C++Builder6
jak ja teraz przekazać do niej wskaźnik do funkcji?
chyba sam nie rozumiesz co napisales...
Powinno byc tak:
AnsiString Funkcja(AnsiString tab[5][2])
{
}
poniewaz chcesz przekazac tablice stworzona statycznie. Jezeli tablica tworzona bylaby
dynamicznie to wtedy tak :
AnsiString Funkcja(AnsiString **tab,int lines,int column)
{
}
z 2 parametrami, lines na ilosc wierszy w tablicy a column na ilosc kolumn .
Ok rozumiem ale teraz to ją kopiujesz chyba prawda?
Nie,nigdy tablica nie jest kopiowana poniewaz jak przekazujesz tablice do funkcji to
tak naprawde przekazujesz adres do jej pierwszego elementu, tablica jest poukladana
w kolejnosci w pamieci czyli np mamy tablice:
int tab[100];
tab - wskaznik na pierwszy element
(gwiazdka)tab-wartosc pierwszego elementu(rownoznaczne z tab[0])
(gwiazdka)(tab+1)- wartosc drugiego elementu (rownoznaczne z tab[1]) itd.
Dlatego jak przekazujesz tablice do funkcji wystarczy ze przekazesz wskaznik do pierwszego elementu
i masz dostep do calej tablicy.
Dziękuje za wyjaśnienie
Pozdrawiam