If I'm right, unique_ptr
is a kind of smart pointer, meaning that we don't need to delete it manually.
However, if we call the function release
, it may leak memories.
For example:
unique_ptr<int> up(new int());
up.release();
Now we get memory leak because release
wont' call delete
.
However, here is something I can't understand:
unique_ptr<int[]> up(new int[10]);
up.release(); // call delete[] automatically
Why delete[]
can be called automatically but delete
can't be?
Aucun commentaire:
Enregistrer un commentaire