czyszczenie wektora wskaźników [duplikat]
To pytanie ma już tutaj odpowiedź:
Jak uniknąć przecieków pamięci podczas używania wektora wskaźników do dynamicznie przydzielanych obiektów w C ++? 4 odpowiedziZałóżmy, że zdefiniowałem taką klasę:
class foo {
private:
std::vector< int* > v;
public:
...
void bar1()
{
for (int i = 0; i < 10; i++) {
int *a = new int;
v.push_back( a );
}
};
void bar2()
{
std::vector< int >::iterator it = v.begin();
for ( ; it != v.end(); it++ )
std::cout << (*it);
v.clear();
}
};
Krótko mówiąc, odpycham niektóre wskaźniki w wektorze, później usuwam wektor. Pytanie brzmi, czy ten kod ma wyciek pamięci? Chodzi mi o to, że czyszczenie wektora, czy wskaźniki zostały poprawnie usunięte?