Przekazywanie do funkcji tablicy 3 wymiarowej [C]

0

Hej, mam taki problem. Mam napisać program, który korzysta z tablicy 3 wymiarowej i nie wiem jak mam przekazać tę tablicę z main do innych funkcji, których używam w programie. Zrobienie czegoś takiego:

void cokolwiek(int ***tablica)
{
	/*instrukcje*/
}

int main(void)
{
	int tablica[10][10][10];
	cokolwiek(tablica);
}

skutkuje rozkraczeniem programu, no i kompilator jeszcze wyrzuca informacje o "incompatibile pointer type". Wiecie może jak to zrobić ? Z góry dzięki za podpowiedzi! :)

1
GCC napisał(a)

note: expected ‘int **’ but argument is of type ‘int ()[10][10]’

Robimy więc jak sugeruje kompilator:

#include <stdio.h>
#include <stdlib.h>

void cokolwiek(int (*tablica)[10][10]) {
}

int main(int argc, char ** argv) {
    int tablica[10][10][10];
    cokolwiek(tablica);
    return EXIT_SUCCESS;
}

Jeśli masz tablice o stałych rozmiarach to warto zastosować typedefy, gdybyś w jakimś momencie chciał pozmieniać wymiary.

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