vector heap



  • Muss ich einen Container gefuellt mit Heap-Elementen explizit loeschen?

    vector<int*>* heapContainer = new vector<int*>(0);
    ...
    heapContainer->push_back(new int(5));
    ...
    delete heapContainer;
    

    Was muss alles deleted werden?



  • Du musst alles löschen, was du mit new anlegst, also musst du jedes Element am Ende einzeln löschen. Du kannst dir sonst auch den Boost shared_ptr anschauen, dann werden die automatisch deleted.



  • Lupus schrieb:

    Du musst alles löschen, was du mit new anlegst, also musst du jedes Element am Ende einzeln löschen. Du kannst dir sonst auch den Boost shared_ptr anschauen, dann werden die automatisch deleted.

    oder besser du baust um den container noch nen wrapper drum, der im dtor alles deleted. shared_ptr ist dafür nicht nötig.


Anmelden zum Antworten