Да предположим, че съм дефинирал клас като този:
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();
}
};
Накратко, избутвам назад някои указатели във вектор, по-късно изчиствам вектора. Въпросът е този код има ли изтичане на памет? Искам да кажа, че чрез изчистване на вектора указателите изтриват ли се правилно?
for
вbar1
изпълнява само редаnew int;
, тъй като няма фигурни скоби, аi+++
е синтактична грешка и... ах добре, предполагам, че това е предназначено да бъде псевдокод. - person Frerich Raabe   schedule 09.10.2012std::vector< int* > v;
вместоstd::vector< int > v;
- person juanchopanza   schedule 09.10.2012