On Wednesday 08 December 2004 21:42, Alan Gonzalez wrote: > > Actually, it's not *guaranteed* to be OK to delete a NULL > > pointer... though it usually is, it's implementation-defined > > behavior. I usually do the following just to be safe: > > > > if (ptr) > > { > > delete ptr; > > ptr = NULL; > > } > > Really? The C99 specification states otherwise. I've been under > the assumption that this is an old myth that continues to be > propagated. Have you actually seen something like that happen? I > haven't. I know that GCC, G++ and Microsoft compilers (look at MSDN > docs on 'delete' operator) check the value of the pointer being sent > in. > > Found this: > > "C++ guarantees that operator delete checks its argument for > null-ness. If the argument is 0, the delete expression has no effect. > In other words, deleting a null pointer is a safe (yet useless) > operation. There is no need to check the pointer for null-ness before > passing it to delete: >
Well, there you go; I'm dating myself. :-) I'm falling back on my pre-C99, pre-ANSI/ISO C++ knowledge... actually, most of my formative C++ experience was really not C++ at all, but cfront. At the very least, I know that in at least one version of pre-ANSI C++ or possibly cfront, the array delete (delete [] ) operator at least was not guaranteed to be NULL-pointer safe. Ah, well... you learn something every day! -JAC _______________________________________________ mythtv-dev mailing list [EMAIL PROTECTED] http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev