c++ - Operator New in function call -


void f(a* a) {     delete a;  };  f(new a()); 

will delete operator release allocated memory or must create , delete object this:

f(a* a) {}   a = new a(); f(a); delete a; 

yes free memory, preferred use smart pointers such std::shared_ptr or boost::shared_ptr prior c++11 instead. in example better set freed pointer null avoid double deallocation avoiding dangling pointer errors.

void f(a*& a) {     delete a;      = null; }; 

you not able call f(new a()); thru , require pass reference pointer holding variable. in 2nd variant. there should a* = new a(); there thru, indicate a pointer.


Popular posts from this blog

How to calculate SNR of signals in MATLAB? -

c# - Attempting to upload to FTP: System.Net.WebException: System error -

ios - UISlider customization: how to properly add shadow to custom knob image -