[c++] Tablica dwuwymiarowa w parametrze funkcji

0

Sprawa jest taka, mam w programie tablice dwuwymiarowe, i nie to, ze sa duze, ale jest ich bardzo wiele i nie moge sobie pozwolic na kopiowanie ich za kazdym razem, przy wywolywaniu funkcji zatem mam takie cos:

char t[10][20];

void foo(char (&t1)[10][20])
{
...
}

int main()
{
 foo(t);
 return 0;
}

Ale jednak gdzies doczytalem, ze to nie jest najlepsze rozwiazanie, i lepiej uzyc wskaznikow. Czy rzeczywisicie zaleca sie tu uzycie wsaznikow?? Jesli tak to jak bedzie wygladala funkcja a potem jej przykladowe wywolanie??

edit: Byc moze, bede chcial tez miec mozliwosc modyfikowania tej tablicy w parametrze. Czy w tym przypadku taka referencja jest bezpieczna??

0

Akurat z tablicami jest inaczej. Nie są one kopiowane. Wystarczy, że napiszesz

void foo(char tab[10][10]) {...}

użyjeszchar tab[10][10];
foo(tab);

A do funkcji nie poleci kopia, a tylko wskaźnik.
0
adf88 napisał(a)

Akurat z tablicami jest inaczej. Nie są one kopiowane. Wystarczy, że napiszesz

void foo(char tab[10][10]) {...}

użyjeszchar tab[10][10];
foo(tab);

A do funkcji nie poleci kopia, a tylko wskaźnik.



Nie wiedzialem :D. Dzieki wielkie.

Aha, a jak wtedy wyglada sprawa z modyfikacja tablicy??
Dobra, sprawdzilem: dziala dokladnie jak referencja.

1 użytkowników online, w tym zalogowanych: 0, gości: 1