Consider the following piece of code:
int main() {
int *i = nullptr;
delete i;
}
Questions:
- Is deleting a null pointer considered undefined behaviour?
- Did something changed in C++11 or C++14?
Consider the following piece of code:
int main() {
int *i = nullptr;
delete i;
}
Questions:
Is deleting a NULL pointer in C++ considered undefined behaviour?
No, this is perfectly legal operation.
From N3242, [expr.delete]
the value of the operand of delete may be a null pointer value