Funktionsübergabe von mehrdimens. Arrays



  • Tach Leute

    Ich kriege absolut nicht hin ein 2 bzw. 3 dimensionales Array in einer Funktion zu übergeben ! Oder ein pointer auf dem Array !!!
    Ich habe es so versucht

    main.cpp

    # include "mein.h"
    void main()
    {
    double spalten [101] [101];
    // Array füllen
    spalten(array);
    }

    void spalten(array[] []);
    {

    //machewas

    }

    mein.h
    extern void spalten(double array[] []);

    Kann mir bitte einer sagen wie die Schnittstellen für solche Arrays aussehen

    MFG Soulfly



  • Das geht meines Wissens in ANSI-C nur so, dass du den zweiten Index angeben musst.

    void spalten(array[] [101]);
    


  • Hab hier mal ein kleines Beispiel wie man es machen könnte:

    #include <stdio.h>
    
    void DoSomething( double xDimArray[][2] );
    
    int main( int argc, char* argv[] )
    {
       double spalten[2][2] = { { 2.3456, 4.5678 },
                                { 3.4567, 5.6789 } };
    
       DoSomething( spalten );
    
       return 0;
    }
    
    void DoSomething( double xDimArray[][2] )
    {
       int f, j;
    
       for( f = 0; f < 2; f++ )
          for( j = 0; j < 2 ; j++ )
             printf( "\nxDimArray[%d][%d] = %f", f, j, xDimArray[f][j] );
    }
    

    Ich glaube es sollte auch sogar laufen 😉

    edit: du solltest deine Variablen allerdings in der Header definieren, und sie dann in (z.b.) der main.c über extern bekannt machen. Und wie schon gesagt, füllt man bei mehrdimensionalen Felder die Größen der einzelnen Zellen von rechts nach links 😉

    [ Dieser Beitrag wurde am 22.01.2003 um 22:50 Uhr von guard editiert. ]



  • Jip danke schön hat mich weitergebracht


Anmelden zum Antworten