DEV Community

Discussion on: What was your win this week?

Collapse
 
eljayadobe profile image
Eljay-Adobe

I learned that this is undefined behavior in C++:

struct Foo{};
int main() {
  Foo* p = nullptr;
  delete p; // okay
  delete p; // undefined behavior
}
Enter fullscreen mode Exit fullscreen mode

To make it well defined behavior:

struct Foo{};
int main() {
  Foo* p = nullptr;
  delete p; // okay
  p = nullptr;
  delete p; // okay
  // ... but hereafter p is once again read inaccessible.
}
Enter fullscreen mode Exit fullscreen mode