0
Why pointer not getting set to nullptr after delete?
class A{ public: void foo() { cout << 1; } }; int main() { A* obj = new A; delete obj; obj = nullptr; //obj = NULL obj->foo(); //Output: 1 return 0; } https://code.sololearn.com/c99ntKkoGOPR/?ref=app
3 Answers
+ 5
It is, but C++ doesn't care if you don't. C++ doesn't protect you from coding junk. A::foo(nullptr) can be called to output 1 as this wasn't used. Try accessing a property and a zero address would likely crash the program. But, that is OS dependent. It could just as easily work.
+ 2
Just a record of me asking the same problem a year ago.
https://www.sololearn.com/discuss/541715/?ref=app
+ 1
@John Wells, you are right, I can not access a property. Thank you
Image demonstration:
https://drive.google.com/file/d/1dV6gT3w3FhCYANjP0Ub9c3z0QRuEV-Lv