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);
}
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.