Assume a class called Vec exists with a vector called arr
as it's only member . The following code does NOT leak memory. (Which means my destructor for Vec is working as expected.)
int main() {
Vec *obj = new Vec(5); // initializes a vector of size 5
delete obj;
}
However, in the following code, there is a memory leak. But why? I seem to have a delete
for each use of new
. What am I missing?
int main() {
Vec* obj;
obj = new Vec(5);
if (true) {
delete obj;
Vec* obj = new Vec(6);
}
delete obj;
}
PS: I checked for memory leak using valgrind.