[C/C++] mehrere Werte aus Funktrion zurück geben?

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Staasi, 21. Januar 2008 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  1. #1 21. Januar 2008
    mehrere Werte aus Funktrion zurück geben?

    Servus,

    habe folgendes Problem:

    Habe eine Funktion
    Code:
    double Flaeche(int Rotmaxp, int xmax, int ymax, int Rotminp, int xmin, int ymin)
    {int Laengerot, Pixelrot, Pixelx, Pixely;
    double Fl, Laengex, Laengey;
    
    
    Pixelrot=Rotmaxp-Rotminp;
    Pixelx=xmax-xmin;
    Pixely=ymax-ymin;
    
    Laengex=((Pixelx*100)/Pixelrot);
    Laengey=((Pixely*100)/Pixelrot);
    
    
    Fl=Laengex*Laengey;
    
    return Fl;
    
    }
    Aus dieser möchte ich nun die Werte Fl, Laengex und Laengey ausgegeben bekommen. Wie geht das???
     

  2. Anzeige
    Dealz: stark reduzierte Angebote finden.
  3. #2 21. Januar 2008
    AW: mehrere Werte aus Funktrion zurück geben?

    Gibts mehrere Möglichkeiten. Entweder du verpackst die ganzen Variablen in eine class oder struct und gibst die dann zurück, oder du machst als zusätzlichen Funktionsparameter noch einen Zeiger oder eine Referenz auf ein Array/Variable, die dann geändert wird
     
  4. #3 21. Januar 2008
    AW: mehrere Werte aus Funktrion zurück geben?

    Das mit dem Zeiger und dem struct hab ich auch schon gelesen. Problem ist, ich hab keine Ahnung wie das gehen soll. versteh das mit den Zeigern noch nicht ganz. struct hatten wir noch nicht in der Vorlesung, also nehm ich die Zeigervariante. Kann mir einer sagen, wie es geht ?
     
  5. #4 21. Januar 2008
    AW: mehrere Werte aus Funktrion zurück geben?

    Ich bin auch noch nicht so ganz fit, was C++ und Zeiger angeht, aber hier mein Werk:

    Code:
    #include <iostream>
    
    using namespace std;
    
    int* PlusDrei(int i1, int i2, int i3);
    
    int main()
    {
     int* rofl = PlusDrei(1,2,3); // rofl ist ein Zeiger auf das Array, das die Funktion PlusDrei erstellt
     
     cout << rofl[0] << rofl[1] << rofl[2]; // Inhalte des Arrays ausgeben
     
     delete[] rofl; // Wichtig: Array aus dem Speicher löschen!
     
     getchar();
    }
    
    int* PlusDrei(int i1, int i2, int i3)
    {
     int* iArr = new int[3]; // Speicher für das Array reservieren
     
     iArr[0] = i1 + 3; // Dem Array
     iArr[1] = i2 + 3; // die Werte
     iArr[2] = i3 + 3; // zuweisen
     
     return iArr; // Den Zeiger auf das Array zurückgeben
    }
    Falls Fehler drin sind, bitte ich um Verbesserung! :]
     
  6. #5 21. Januar 2008
    AW: mehrere Werte aus Funktrion zurück geben?

    Danke dir, versuche das mal umzusetzen, programmiere aber in c!!!
    Bin doch noch Anfänger ;)

    Also, wenns jemand für c weis, immer her damit,

    BW, natürlich raus :)
     
  7. #6 21. Januar 2008
    AW: mehrere Werte aus Funktrion zurück geben?

    Hey!

    Einfaches Beispiel, baus dir selber draus zusammen :p

    Code:
    #include <stdio.h>
    
    void func (int *a, int *b)
    {
     int neuer_wert_a = 5, neuer_wert_b = 7;
    
     // Zeiger dereferenzieren 
     // ( = auf Inhalt zugreifen und nicht den Pointer aendern! )
     *a = neuer_wert_a;
     *b = neuer_wert_b;
    }
    
    int main (void)
    {
     int a = 0, b = 0;
     
     printf ("a = %i | b = %i\n", a, b);
     func (&a, &b);
     printf ("a = %i | b = %i\n", a, b);
    
     return 0;
    }
    Mfg,

    Kolazomai
     
  8. #7 21. Januar 2008
    AW: mehrere Werte aus Funktrion zurück geben?

    Danköööööö!!!!

    Und zu.
     

  9. Videos zum Thema
Die Seite wird geladen...