Funktionswertrückgabe???



  • HILFE !!! schrieb:

    aber ich weiß immer noch nicht wie ich die 2 zurückgegebenen Funktionswerte im main() wieder aufgreifen kann

    Wo ist das Problem?

    void foo(int& erg1, int& erg2)
    {
        erg1 = // irgendwas
        erg2 = // irgendwas
    }
    
    int main()
    {
        int a, b;
        foo(a, b);
        // a und b enthalten jetzt die Werte, die ihnen in foo zugewiesen wurden
    }
    


  • Auch schon wieder falsch verstanden! 🙂

    Also sagen wir mal folgendes:

    -------------------------
    int test(int a, int b)
    {
    int z,i;

    .... programm code ... bla bla

    return z,i;
    }

    void main()
    {
    int h,k;

    // und wie jetzt weiter ??? wenn ich die Werte "z" und "i" aus der test
    //Funktion haben will?

    h=test(Wert1,Wert2); // hab ich so den z-Wert??
    k=test(Wert1,Wert2); // hab ich so den k-Wert? ???

    }
    -----------------------------------

    Danke !

    MFG
    Basti



  • randa schrieb:

    ssm schrieb:

    doch mit static 😃

    nix da, beim zweiten aufruf zeigt der vorher verwendete Zeiger auf das gleiche Array dann.

    na und?



  • SideWinder schrieb:

    Hast du für diesen Text nun 6 Minuten benötigt? 😃

    MfG SideWinder

    😃

    ich hab leider nicht so viel Zeit um diesen Text zu lesen. Könntest du mir kurz einen begründeten Grund sagen, wieso es nicht besonders gut ist, static variables in functions zu benutzen, wenn es nicht um "thread safe" geht?



  • wie na und?

    int *schwachsinn (int a, int b, int c)
    {
    	static int ar[3];
    	ar[0]=a;
    	ar[1]=b;
    	ar[2]=c;
    	return ar;
    }
    
    int main ()
    {
    	int *a;
    	int *b;
    	a=schwachsinn (3, 2, 1);
    	b=schwachsinn (4, 3, 2);
    	cout << a[0] << a[1] << a[2] << endl;
    }
    

    Teste und sieh selbst.

    Edit: Wenn du unbedingt willst, das am ende alle Zeiger auf das selbe zeigen, ist das natürlich was anderes 🙄
    returne ein struct oder noch besser, platziere die ausgabe in der Parameterliste:

    void inordnung (int a, int b, int c, int *result, int sizeof_result)
    {
    	if (sizeof_result<3) return;
    	result[0]=a;
    	result[1]=b;
    	result[2]=c;
    }
    


  • randa schrieb:

    wie na und?

    int *schwachsinn (int a, int b, int c)
    {
    	static int ar[3];
    	ar[0]=a;
    	ar[1]=b;
    	ar[2]=c;
    	return ar;
    }
    
    int main ()
    {
    	int *a;
    	int *b;
    	a=schwachsinn (3, 2, 1);
    	b=schwachsinn (4, 3, 2);
    	cout << a[0] << a[1] << a[2] << endl;
    }
    

    Teste und sieh selbst.

    es ist keinen Schwachsinn, es ist das besondere Verhalten, das manchmal benutzt werden darf oder soll. 😉



  • ssm schrieb:

    es ist keinen Schwachsinn, es ist das besondere Verhalten, das manchmal benutzt werden darf oder soll. 😉

    Verhalten? Eher eine fehlende Logik...



  • Shlo schrieb:

    Verhalten? Eher eine fehlende Logik...

    *rofl* 😃



  • Shlo schrieb:

    ssm schrieb:

    es ist keinen Schwachsinn, es ist das besondere Verhalten, das manchmal benutzt werden darf oder soll. 😉

    Verhalten? Eher eine fehlende Logik...

    hast du was über Singleton von Mayers gehört? Das ist auch fehlende Logik?



  • ssm schrieb:

    hast du was über Singleton von Mayers gehört? Das ist auch fehlende Logik?

    Das hier hat nichts mit singleton zu tun.



  • randa schrieb:

    ssm schrieb:

    hast du was über Singleton von Mayers gehört? Das ist auch fehlende Logik?

    Das hier hat nichts mit singleton zu tun.

    und womit hat das hier zu tun?



  • HILFE! schrieb:

    Funktionswertrückgabe



  • randa schrieb:

    HILFE! schrieb:

    Funktionswertrückgabe

    🙄 und? was hab ich falsh gemacht?



  • damn?

    int* fill (int a, int b)
    {
        static int arr [2];
        arr[0] = a;
        arr[1] = b;
    }
    
    bool comp (int* a, int* b)
    {
        if(a[0]==b[0] && a[1]==b[1])
            return(true);
        return(false);
    }
    
    ...
    
    comp( fill(2,3) , fill(2,4) ); // Sollte ja wohl nach der Programmlogik false zurückgeben, gibt aber true zurück!
    

    Was gibts da großartig mehr zu erklären? Das ist nicht das gewünschte Verhalten, dass der Poster haben wollte -> falsch?!

    MfG SideWinder



  • ssm schrieb:

    🙄 und? was hab ich falsh gemacht?

    Also erstens hast du falsch falsch geschrieben 😃 , zweitens - Singleton ist von Meyers? 😮 🤡



  • SideWinder schrieb:

    Was gibts da großartig mehr zu erklären? Das ist nicht das gewünschte Verhalten, dass der Poster haben wollte -> falsch?!

    in diesem Fall - falsch, aber es gibt die anderen...



  • Du und der Shlo werdet mir immer suspekter...

    MfG SideWinder



  • ssm, du diskutierst anstatt einzusehen dass dein codebeispiel falsch war.



  • Shlo schrieb:

    Also erstens hast du falsch falsch geschrieben 😃

    es könnte sein, weil ich nur Deutsch lerne und meine Deutschkenntnisse unbedingt verbessert werden sollen. Dazu brauche ich die Zeit, wie jeder eine neue Sprache lernende Mensch. :p

    Shlo schrieb:

    zweitens - Singleton ist von Meyers? 😮 🤡

    sory, ich meinte "Scott Meyers approach to Singleton implementation".



  • SideWinder schrieb:

    Du und der Shlo werdet mir immer suspekter...

    MfG SideWinder

    Huh? 😕


Anmelden zum Antworten