2D array als Parameter übergeben mit variabler Größe



  • Hi.

    Habe folgendes Prog:

    #include <stdlib.h> 
    
    int Matrix[5][5];
    int Matrix2[23][40];
    
    void test(int Matrix[][]){
        Matrix[1][1]=5;
    }
    
    void main(){
        test(Matrix);
        test(Matrix2);
    }
    

    Ich will also ein 2D Feld übergeben.
    Die Größe der Matrix (2D feld) soll jedoch variable sein.
    Wie geht das?
    Ich habe gehört man kann in C nur eindimensionale Felder als Parameter übergeben. Stimmt das?? Gibt es viellicht eine Lösung unter C++?

    Gruß
    madap



  • Dynamische Arrays -> malloc() oder calloc()

    Wenn die größe innerhalt des Programms nicht mehr variiert wird und nur einmal beim Start des Programms festgelegt werden muss, dann bieten sich auch VLA (Variable Length Arrays) an. Dazu muss der Compiler aber C99 unterstützen.

    MAn kann in C n-dimensionale Felder übergeben. Man übergibt eh nur einen Zeiger auf das erste Element. Genau das was du auch machst.


Anmelden zum Antworten