Array per function zurückgeben



  • Ich probiere einen Array über eine function wiederzugeben.
    Hier mal der Code:

    string get_types()
    {
        string types[5] = {"Feuer", "Pflanze", "Wasser", "Normal", "Erde"};
        return types[5];
    }
    
    int main()
    {
        ...
        string types[5];
        types[5] = get_types();
    }
    

    Ich bekomme keine Fehler vom Compiler/Linker, aber wenn ich das Programm starte, bekomme ich eine Speicherverletzung.
    Dabei ist doch vom Syntax her alles richtig, ich habe ähnliche Teile an anderen Stellen im Programm...



  • void foo(std::string (&str)[5])
    {
    	//...
    }
    
    std::string str[5];
    foo(str);
    

    oder

    void foo(std::vector<std::string>& v)
    {
    	v.push_back("string");
    	//usw
    }
    
    std::vector<std::string> v;
    foo(v);
    


  • Danke, dass hat geklappt! 😉


Anmelden zum Antworten