Speicherallokierung C++ (Qt Framework)



  • Hallo Leute,

    ich hab mal ne ganz "dumme" frage bzw. Speicherallocation C++/Qt:

    ich habe eine funktion:

    void Dialog::OnNumber0()
    {
        _currentNumber =66;
        QString str = QString::number(_currentNumber);
        ui->_outputField->setText(str);
    }
    

    hier habe ich eine lokale variable vom typ "int" mit QString::number erzeuge ich eine Instanze vom type QString aufm stack , und gebe diese meiner QTextField via setText!

    Nun was passiert in "setText"? wird da intern eine QString Instanz verwaltetund meine QString daten da hineinkopiert? Oder verwendet das das QTextField meine instanzt, die ja nur aufm Stack wr!?

    Kann man das irgendwo nachlessen, wie das generell gehandhabt wird?

    Grüße



  • Ein armer Irrer könnte natürlich in der Funktion setText einfach die Adresse der Stackvariablen speichern. Die Trolle sind zwar bescheuert, aber so bescheuert auch wieder nicht, d.h. sie legen eine Kopie an.

    Generell sollte man seinen Verstand benutzen.



  • Ja, ich hätte mir auch gedacht, dass eine kopier gespierhct wir, aber lieber 1mal zuviel gefragt:) deswegen hab ich es ja als "dumme" frage deklariert!

    Vll. gibt es ja Gründe oder Ausnahmen die anders zu tun:)

    Und Danke:) 😃



  • Du kannst ja auch in den Code schauen. Qt ist ja Open Source und keine Black Box. Ich schau mir da ständig den Code an und debugg ihn auch durch.


Anmelden zum Antworten