(auto_ptr<TStringList> mylist) an Funktion übergeben



  • HILFE!
    Liebe C-Freuende, ich habe ein Problem und komme alleine nicht mehr weiter! Kann sich bitte jemand die Mühe machen und meinen kleinen Fetzen Quellcode analysieren? Ich möchte unbedingt mit dem auto_ptr reservierten Speicher an die Funktion f1 übergeben, das scheint aber beim mir nicht zu funktionieren! Wie ich das Ganze mit dem normalen Zeiger auf die TStringList realisiert werden kann, weis ich, nur mit diesen auto_ptr funktioniert nicht.

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
             std::auto_ptr<TStringList> mylist( new TStringList() );
             f1(mylist);
    }
    //---------------------------------------------------------------------------
    
    void TForm1::f1(TStringList* list)
    {
    	list->Add("test1");
        list->Add("test2");
    
    }
    

    Ich bedanke mich im Voraus für Ihre Zeit!
    😕 coder24h 😕



  • Habe das Problem selber gelöst:

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
             std::auto_ptr<TStringList> mylist( new TStringList() );
             f1(mylist);
             if(mylist->Count)
             	ShowMessage(mylist->Strings[0]);
    }
    //---------------------------------------------------------------------------
    void TForm1::f1(std::auto_ptr<TStringList>& list)
    {
    	list->Add("test1");
    }
    

    Viel Spaß noch cu 🕶


Anmelden zum Antworten