Tablica dwuwymiarowa: zaawansowany przykład

Język C: dynamiczne tablice dwuwymiarowe i funkcje

Wstęp

Język C pozwala deklarować tablice w „klasyczny sposób” to znaczy określając ich typ i liczbę elementów. Deklaracja tablicy jednowymiarowej wygląda tak:

(w nawiasach podajemy liczbę elementów).

W przypadku tablic dwuwymiarowych deklaracja wygląda tak:

w pierwszym nawiasie kwadratowym podana jest liczba wierszy, w drugim liczba kolumn.

Do elementów tablic dobieramy się w standardowy (cokolwiek to znaczy) sposób, na przykład:

Natomiast zapis z dwoma nawiasami kwadratowymi sugeruje, że mamy do czynienia z bardziej skomplikowanym tworem: jednowymiarową tablicą (adresów) jednowymiarowych tablic.

W istocie, nawet przy powyższych deklaracjach poprawny jest zapis

na przykład

Zwracam uwagę na format wydruku %p przeznaczony do drukowania wartości wskaźników.

Przykład

Poniższy przykład pokazuje jak można zadeklarować dynamiczną tablicę dwuwymiarową (i przekazać jej adres do funkcji).

Najpierw deklarujemy wskaźnik, w którym będą zapamiętane wszystkie adresy:

Jeżeli zapisać to w nawiasach double *(*t) to widać że deklarujemy standardowo adres tablicy jednowymiarowej *(). Druga gwiazdka mówi o tym, że elementami tej tablicy również będą adresy *t.

Cały przykład wygląda tak: