Manipuluj wielowymiarową tablicą w funkcji

Czytałem tutaj wiele rzeczy i próbowałem wielu, ale nie mogłem znaleźć sposobu na przekazanie tablicy wielowymiarowej do funkcji w C, zmianę niektórych wartości i jakoś zwrócić nową tablicę. Ważne jest, aby znaleźć sposób na przekazanie tej tablicy dalej do innej funkcji i zrobić to samo.

Chciałbym znaleźć sposób na przekazanie tablicy do funkcji. Następnie przekaż ją z pierwszej funkcji do drugiej, zrób coś tam (może wydrukować, może zmienić wartości), a następnie użyj go ponownie do pierwszej funkcji i wreszcie użyj ta tablica w głównym.

Moja ostatnia próba to:

void func(int multarray[][columns]){
    multarray[0][0]=9;
}

int main(){
    int rows;
    int columns;
    int multarray[rows][columns];
    func(multarray);
    return 0;
}

Próbowałem również tego:

void func(int multarray[rows][columns]){
    multarray[0][0]=9;
}

int main(){
    int rows;
    int columns;
    int multarray[rows][columns];
    func(multarray);
    return 0;
}

Próbowałem również tego:

int
getid(int row, int x, int y) {
          return (row*x+y);
}

void
printMatrix(int*arr, int row, int col) {
     for(int x = 0; x < row ; x++) {
             printf("\n");
             for (int y = 0; y <col ; y++) {
                 printf("%d  ",arr[getid(row, x,y)]);
             }
     }
}

main()
{

    int arr[2][2] = {11,12,21,22};
    int row = 2, col = 2;

    printMatrix((int*)arr, row, col);

}

ztutaj

Próbowałem też podwójnych wskaźników. Czytałem również, że istnieje inne podejście, jeśli kompilator nie obsługuje VLA. Używam gnu.

questionAnswers(4)

yourAnswerToTheQuestion