Char Array in einer Funktion ausgeben.



  • Skym0sh0 schrieb:

    Dachdecker schrieb:

    Die Ausgabe funktioniert nur die Sache hat einen kleinen Haken.
    Eigentlich müsste ich ja E mit free(E) reinigen aber dann kann ich den Wert ja nicht mehr zurück geben :-(.

    #include <iostream>
    #include <string>
    #include <stdlib.h>
    using namespace std;
    
    char &my_function(string a)
    {
        char * E;
         E = (char *) malloc(a.size());
    
        for(int i=0;i<a.size();i++){
            E[i] = a[i];
        }
    
        char *s = E;
     //   free(E);
    
        return *s;
    
    }
    
    int main()
    {
        string dumm = "dumm";
    
        cout << &my_function(dumm);
        return 0;
    }
    

    Häää?
    Ich denke du willst C++ Strings nutzen?
    malloc ist C und kein C++.

    Und so wie ich das auf den ersten Blick sehe in der SQLite-API wird ein const char* erwarten, den kriegst du von einem std::string per c_str Methode.

    Wo ist also dein Problem??

    Edit: Oder willst du X machen, denkst es geht per Y und anstatt nach X zu fragen, fragst du nach Y?!?

    Ich will nur ein Char Array zurück geben mehr nicht.
    Lasst euch von dem String beim funktionsparameter nicht verwirren Leute.

    Für Babys:

    return CharArray[]



  • dachdecker schrieb:

    Ich will nur ein Char Array zurück geben mehr nicht.

    Für Babys:

    return CharArray[]

    Für Begriffsstutzige:
    Das geht nicht!



  • der te will also einen std::string in einen c-string wandeln (manuell!) ohne ein proxy-objekt welches den dynamischen speicher des c-strings scope-übergreifend wieder frei gibt. dabei wurde er mehrfach auf die std::string-methode std::string::c_str() hingewiesen, was er ignorierte. nutz also c_str() oder lass das forum in ruhe, meine güte lol...

    edit: formulierung angepasst.



  • Vielleicht helfen ja dies beiden Beiträge weiter:

    http://www.c-plusplus.net/forum/138655

    http://www.c-plusplus.net/forum/53702



  • DirkB schrieb:

    Vielleicht helfen ja dies beiden Beiträge weiter:

    http://www.c-plusplus.net/forum/138655

    http://www.c-plusplus.net/forum/53702

    Das ist mal eine Sprache die ich verstehe danke 🙂
    Bis eben dachte ich ihr ignoriert mehr mich als ich euch :3
    Die ganze Zeit meinte ich ihr wollt Stur mich auf eine Methode verweisen die mir mir nichts bringt 😞

    Der Dachdecker meinte mit c_str meint ihr ich soll normale CharStrings verwenden.

    Mein Problem hat sich auch gelößt danke für eure Gedult :3



  • dachdecker schrieb:

    Das ist mal eine Sprache die ich verstehe danke 🙂
    ...
    Der Dachdecker meinte mit c_str meint ihr ich soll normale CharStrings verwenden.

    Dann hast du die falschen Fragen gestellt.
    Hinweise gab es:

    DirkB schrieb:

    Aber was hast du gegen c_str von std::string ?
    Weißt du überhaupt was das macht?

    Skym0sh0 schrieb:

    Oder willst du X machen, denkst es geht per Y und anstatt nach X zu fragen, fragst du nach Y?!?

    dachdecker schrieb:

    Die ganze Zeit meinte ich ihr wollt Stur mich auf eine Methode verweisen die mir mir nichts bringt

    Das die Antworten hier so einstimmig kamen, ist er selten 😃

    Dein Problem ist, das du weder C++ noch C in den Grundlagen kennst.
    Trotzdem willst du hier diese beiden verschiedenen Sprachen vermischen.

    Was verstehst du unter CharStrings?


Anmelden zum Antworten