Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Usuwanie wskaźników na obiekty z wektora

Ostatnio zmodyfikowano 2016-07-29 13:00
Autor Wiadomość
Donkamilo
Temat założony przez niniejszego użytkownika
Usuwanie wskaźników na obiekty z wektora
» 2016-07-29 12:03:09
Posiadam taki kod do dodawania nowych elemtów:

C/C++
std::vector < QTE *> qte;
qte.push_back( new QTE { 1, 1, 3, 0 } );

Gdzie QTE jest moją klasą.
(konstruktor tej klasy przyjmuje 4 argumenty)

Usuwam je w taki sposób:
C/C++
qte.erase( qte.begin() + j );
 
Jednak powoduje to wyciek pamięci.
Jak wykonać to poprawnie?
próbowałem dodać:
C/C++
delete & qte[ j ];
a następnie usuwać jednak to powoduje crash.
P-150358
pekfos
» 2016-07-29 12:09:23
C/C++
delete & qte[ j ];
Bez &.

Możesz sobie tego oszczędzić z użyciem wskaźników inteligentnych shared_ptr<> lub unique_ptr<>.
P-150359
Donkamilo
Temat założony przez niniejszego użytkownika
» 2016-07-29 13:00:31
Dziękuje bardzo!

Naprawdę, tak długo się zastanawiałem gdzie jest błąd.

A co do smart pointers, to zastanowię się nad ich użyciem.
Jeszcze raz wielkie dzięki.
P-150362
« 1 »
  Strona 1 z 1