Załóżmy, że zdefiniowaliśmy klasę tak:rozliczeń wektor wskaźników
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, odepchnąć pewne wskazówki w wektorze, później wyczyścić wektor. Pytanie brzmi, czy ten kod ma wyciek pamięci? Chodzi mi o to, oczyszczając wektor, czy wskaźniki są właściwie usunięte?
rzeczywiście wcisnąć tylko jeden wskaźnik do wektora; pętla 'for' w' bar1' wykonuje tylko linię 'new int;', ponieważ nie ma nawiasów klamrowych, a 'i +++' jest błędem składni i ... hmm, myślę, że to ma być pseudokod. –
@ Frerich Raabe: edycja ... – mahmood
Trzeba również wektor int wskazówek: 'std :: vector < int* > V;' 'zamiast std :: vector < int > v;' – juanchopanza