2-wymiarowa tablica

  • Rejestracja: dni
  • Ostatnio: dni
0

Moglby mi ktos powiedziec, jak przekazac taka tablice du funkcji?

Wiem, ze deklaracja funkcji wyglada tak;

Kopiuj
int tab[3][3];

void funkcja(int tab[][3])

albo tak funkcja(int (*tab)[3]) - chocaiz to nie do konca rozumiem.

A jak wygalda wywolanie funkcji dla aprametru tab[3][3]?

MarekR22
  • Rejestracja: dni
  • Ostatnio: dni
0

Deklaracje wyglądają dokładnie jak napisałeś.
Wywołanie to po prostu:

Kopiuj
int tab[3][3];

funkcja(tab)

Przy czym tka naprawdę pierwszy rozmiar nie musi wynosić 3.

Pierwszą deklaracje powinieneś przeczytać tak: funkcja jest funkcją przyjmująca za argument tablicę o nieznanej liczbie elementów o typie trójelementowej tablicy int.

M2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 123
0

Możesz też zadeklarować dynamiczną tablicę:

Kopiuj
int ** tab;

tab = new int * [10];

for (int i = 0; i < 10; i++)
  tab[i] = new int [10];

Wtedy możesz w funkcji przekazać tablicę dowolnego rozmiaru:

Kopiuj
int przekazTablice(int ** tablica, int rozmiarX, int rozmiarY);

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.