In C or C++ when we delete some pointer, it only frees the memory but does not set the pointer to 0. Since we can not check the validity of a pointer, it would have been easier for the programmer to check the nullness of the pointer if the pointer is set to 0 after freeing the memory.
I was just wondering why 'delete' is implemented only to free the memory.