Mehrdimensionales Array mittels Funktion modifizieren



  • Hallo,

    ich versuche gerade krampfhaft ein mehrdimensionales Array mit einer Funktion zu modifizieren.
    Im eindimensionalen Fall funktioniert dies einwandfrei:

    void modify(int* array) {
    	array[0] = 1;
    	array[1] = 2;
    }
    
    int main(void) {
    	int array[2];
    	modify(array);
    	return 0;
    }
    

    Für ein mehrdimensionales Array funktioniert diese Methode aber nicht. Ich kann mir aber nicht erklären wieso dies so ist.

    void modify(int* array) {
    	array[0][0] = 1;
    }
    
    int main(void) {
    	int array[2][2];
    	modify(array);
    	return 0;
    }
    

    arrays.c: In Funktion »modify«:
    arrays.c:2: Fehler: indizierter Wert ist weder ein Feld noch ein Zeiger
    arrays.c: In Funktion »main«:
    arrays.c:8: Warnung: Übergabe des Arguments 1 von »modify« von inkompatiblem Zeigertyp

    Was mache ich denn falsch? 😕



  • Wie man mehrdimensionale Arrays an Funktionen übergibt kannst du hier sehen: Übergabe von zwei- bzw. mehrdimensionalen Arrays an Funktionen



  • Da war ich auch schon, leider ist es nicht das was gesucht habe.
    Die Funktion liest das mehrdimensionale Array aus, ich möchte aber gerne das Array modifizieren. Das beinhaltet das Auslesen und das Schreiben des Arrays (am liebsten über Pointer).



  • boizterus schrieb:

    Die Funktion liest das mehrdimensionale Array aus, ich möchte aber gerne das Array modifizieren. Das beinhaltet das Auslesen und das Schreiben des Arrays (am liebsten über Pointer).

    Und wo genau liegt jetzt das Problem? Modifizeren kann man es doch.


Log in to reply