C++03 Standard say\'s:
5.3.5 Delete [...] In either alternative, if the value of the operand of delete is the null pointer the operat
5.3.5 Delete
[...] In either alternative, if the value of the operand of delete is the null pointer the operat
Yes it is valid, and it results in a noop. reference
If expression evaluates to a null pointer value, no destructors are called, and the deallocation function is not called.