lokale Arrays an andere Funktion übergeben!



  • #include <iostream>
    
    class Zahlen
    {
       double array[];
    
       //Konstruktor
       Zahlen(double *a)
       {
          array=a;
       }
    }
    
    Zahlen gebeZahlenEin()
    {
      double temp[5];
    
      for(int i=0; i<4; i++)
      {
         cin >> temp[i];
      }
    
      return Zahlen(temp);
    }
    
    void main()
    {
      Zahlen neueZahlen = gebeZahlenEin();
    }
    

    Hi!

    Ich will ein lokales Array (in einer Funktion angelegt) an eine andere Funktion übergeben (z.B. in diesem Fall an einen Konstruktor).
    Leider wird das lokale Array (hier "temp") nach Verlassen des Funktionsaufrufs gelöscht, so dass es nix bringt, den Zeiger darauf zu übergeben.
    Wie löse ich das Problem bzw. wie übergebe ich lokal erstellte Arrays an andere Funktionen?

    Danke! 😃



  • Hallo

    nicht als Parameter, sondern als Parameter. Wenn du keine festen Arraygrößen hast, dann als Pointer.

    besser ist natürlich ein std::vector, das könntest du sogar als Rückgabetyp verwenden.

    bis bald
    akari



  • akari schrieb:

    nicht als Parameter, sondern als Parameter

    😕



  • Hallo

    wird wohl doch Zeit, aus zu machen... das erste soll natürlich "Rückgabewert" heißen.

    bis bald
    akari


Anmelden zum Antworten