array und funktionen



  • ich habe mal eine frage..
    wie kann man sowas eigentlich in eine funktion packen?

    cout<<"-------"<<endl;
    cout<<"|"<<a[0][0]<<"|"<<a[0][1]<<"|"<<a[0][2]<<"|"<<endl;
    cout<<"|"<<a[1][0]<<"|"<<a[1][1]<<"|"<<a[1][2]<<"|"<<endl;
    cout<<"|"<<a[2][0]<<"|"<<a[2][1]<<"|"<<a[2][2]<<"|"<<endl;
    cout<<"-------"<<endl;
    


  • Hm, naja, übergib das Array einfach an eine Funktion, vielleicht noch die Größe, und die gibt es dann aus...



  • Maxi2 schrieb:

    Hm, naja, übergib das Array einfach an eine Funktion, vielleicht noch die Größe, und die gibt es dann aus...

    jetzt bin ich genauso schlau wie vorher.. es ist ja gerade mein problem, dass ich nicht weiss, wie ich das an eine funktion übergeben soll..



  • So könnte der Prototyp deiner Funktion aussehen:

    void func(type **a, int dim1, int dim2);

    Bei type setzt du natürlich den Typ deines 2dim. Arrays ein.

    flo



  • meinst du so: ?

    void feld(char **a, int dim1, int dim2){
    	cout<<"-------"<<endl;
    	cout<<"|"<<x[0][0]<<"|"<<x[0][1]<<"|"<<x[0][2]<<"|"<<endl;
    	cout<<"|"<<x[1][0]<<"|"<<x[1][1]<<"|"<<x[1][2]<<"|"<<endl;
    	cout<<"|"<<x[2][0]<<"|"<<x[2][1]<<"|"<<x[2][2]<<"|"<<endl;
    	cout<<"-------"<<endl;
    }
    

    und wie würde ich die funktion aufrufen?



  • Machs besser mit 2 For-Schleifen

    cout<<"-------"<<endl;
    for(int i=0;i<0;i++) {
        for(int j=0;j<0;j++) {
            cout<<a[i][j]<<"|";
         }
         cout<<endl;
    }
    cout<<"-------"<<endl;
    

    So gehts dann denke ich mal, habs nich versucht aber das Prinzip passt. Damit kannst du beliebig Große 2-Dimensionale Arrays ausgeben



  • CruelDiscovery schrieb:

    meinst du so: ?

    void feld(char **a, int dim1, int dim2){
    	cout<<"-------"<<endl;
    	cout<<"|"<<x[0][0]<<"|"<<x[0][1]<<"|"<<x[0][2]<<"|"<<endl;
    	cout<<"|"<<x[1][0]<<"|"<<x[1][1]<<"|"<<x[1][2]<<"|"<<endl;
    	cout<<"|"<<x[2][0]<<"|"<<x[2][1]<<"|"<<x[2][2]<<"|"<<endl;
    	cout<<"-------"<<endl;
    }
    

    und wie würde ich die funktion aufrufen?

    Wenn du den Parameter a nennst, solltest du natürlich in der Funktion diesen auch verwenden und nicht x... 😉



  • @Herr der Dinge:

    cout<<"-------"<<endl;
    for(int i=0;i<dim1;i++) {
        for(int j=0;j<dim2;j++) {
            cout<<a[i][j]<<"|";
         }
         cout<<endl;
    }
    cout<<"-------"<<endl;
    

    wär besser - sonst durchläuft er die Schleifen gar nicht. 😉



  • Cocaine schrieb:

    CruelDiscovery schrieb:

    meinst du so: ?

    void feld(char **a, int dim1, int dim2){
    	cout<<"-------"<<endl;
    	cout<<"|"<<x[0][0]<<"|"<<x[0][1]<<"|"<<x[0][2]<<"|"<<endl;
    	cout<<"|"<<x[1][0]<<"|"<<x[1][1]<<"|"<<x[1][2]<<"|"<<endl;
    	cout<<"|"<<x[2][0]<<"|"<<x[2][1]<<"|"<<x[2][2]<<"|"<<endl;
    	cout<<"-------"<<endl;
    }
    

    und wie würde ich die funktion aufrufen?

    Wenn du den Parameter a nennst, solltest du natürlich in der Funktion diesen auch verwenden und nicht x... 😉

    joa schon klar.. tippfehler.. aber wie rufe ich die funktion auf? ich hätte gedacht:

    feld(array,3,3);
    

    bin wohl zu doof 😃



  • äähmm... ich meinte:

    feld(x, 3, 3);
    

    wieder ein tippfehler*g*



  • CruelDiscovery_on_tour schrieb:

    äähmm... ich meinte:

    feld(x, 3, 3);
    

    wieder ein tippfehler*g*

    wenn dein Array ausserhalb der Funktion a heißt dann musst du auch a übergeben:

    fled(a, 3, 3);
    


  • also es sieht jetzt so aus:

    void feld(char **x, int dim1, int dim2){ 
        cout<<"-------"<<endl; 
        cout<<"|"<<x[0][0]<<"|"<<x[0][1]<<"|"<<x[0][2]<<"|"<<endl; 
        cout<<"|"<<x[1][0]<<"|"<<x[1][1]<<"|"<<x[1][2]<<"|"<<endl; 
        cout<<"|"<<x[2][0]<<"|"<<x[2][1]<<"|"<<x[2][2]<<"|"<<endl; 
        cout<<"-------"<<endl; 
    }
    

    wollte es mit

    feld(x,3,3);
    

    aufrufen.. klappt aber nicht.. was mache ich denn falsch?


Anmelden zum Antworten