Array als return Wert einer Funktion



  • hallo.

    gibt es eine möglichkeit, ein array, dass innerhalb einer funktion definiert wurde, als return wert der funktion zurückzuliefern, oder muss ich das array zuvor an die funktion übergeben?
    ich denke ja, dass es nicht möglich ist, weil das array ja am ende der funktion zerstört wird. aber vielleicht liege ich ja falsch. 🕶

    danke.
    STICK.



  • Mach dein lokales Array static und es wird dir noch viele Stunden spaß bereiten (=nicht am Ende der Funktion zerstört werden).



  • Da liegst du richtig. Als Alterantiven zu deiner Lösung (Übergabe durch Aufrufer) könntest du das Array statisch deklarieren (aber dann überschreibt dir jeder neue Funktionsaufruf deine Daten), auf dem Heap anlegen (new[] - der Aufrufer darf das passende delete[] nicht vergessen) oder std::vector verwenden.



  • Oder du könntest einen Container wie vector benutzen:

    vector<char> foo() {
      vector<char> bar;
      // fill bar
      return bar;
    }
    

    Greetz



  • okay danke. dann mach ich es doch lieber mit der alt hergebrachten methode, dass ich das array erst an die funktion übergebe.
    ciao.


Anmelden zum Antworten