Deleting string object in C++

Deleting string object in C++

You dont have to. When the string goes out of scope, its destructor will be called automatically and the memory will be freed.

If you want to clear the string right now (without waiting until it goes out of scope) just use str.clear().

str.clear();

or

str = ;

However, as stated in the comments, this does not guarantee (and, in fact, is rather unlikely) to actually return heap memory. Also not guaranteed to work, but in practice working well enough is the swap trick:

std::string().swap(str);

Still, implementations employing the small string optimization will retain a few bytes of stack space (and str itself of course also lives on the stack).

In the end I agree with all comments saying that it is questionable why you want to do that. Ass soon as str goes out of scope, its data will be deleted automatically anyway:

{
  std::string str;

  // work with str

} // str and its data will be deleted automatically

Deleting string object in C++

Add an Additional scope

{
  String str;
  ...
  ...
}

to ensure that str goes out of scope when you no longer need it.
Remeber it could be tricky in terms of how other variables are also defined.

Leave a Reply

Your email address will not be published.