Предположим, я определил такой класс:
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