Предположим, класс с именем Ve c существует с вектором с именем arr
, поскольку он является единственным членом. Следующий код НЕ дает утечки памяти. (Это означает, что мой деструктор для Ve c работает должным образом.)
int main() {
Vec *obj = new Vec(5); // initializes a vector of size 5
delete obj;
}
Однако в следующем коде означает утечка памяти. Но почему? Кажется, у меня есть delete
для каждого использования new
. Чего мне не хватает?
int main() {
Vec* obj;
obj = new Vec(5);
if (true) {
delete obj;
Vec* obj = new Vec(6);
}
delete obj;
}
PS: я проверил на утечку памяти, используя valgrind.