Manipulieren Sie mehrdimensionale Arrays in einer Funktion
Ich habe hier viel gelesen und viele ausprobiert, aber ich konnte keinen Weg finden, ein mehrdimensionales Array an eine Funktion in C zu übergeben, einige der Werte zu ändern und irgendwie das neue Array zurückzugeben. Es ist wichtig, einen Weg zu finden, dieses Array an eine andere Funktion weiterzuleiten und dasselbe zu tun.
Ich möchte einen Weg finden, um das Array an eine Funktion zu übergeben. Dann übergeben Sie es von der ersten Funktion an eine zweite, machen dort etwas (vielleicht drucken, vielleicht Werte ändern), dann wieder an die erste Funktion und schließlich verwenden dieses Array in main.
Mein letzter Versuch ist:
void func(int multarray[][columns]){
multarray[0][0]=9;
}
int main(){
int rows;
int columns;
int multarray[rows][columns];
func(multarray);
return 0;
}
Ich habe es auch versucht:
void func(int multarray[rows][columns]){
multarray[0][0]=9;
}
int main(){
int rows;
int columns;
int multarray[rows][columns];
func(multarray);
return 0;
}
Ich habe es auch versucht:
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);
}
vonHier
Ich habe auch doppelte Zeiger ausprobiert. Ich habe auch gelesen, dass es einen anderen Ansatz gibt, wenn der Compiler keine VLAs unterstützt. Ich benutze Gnu.