Pete Becker
11/25/2008 12:04:00 PM
On 2008-11-25 05:05:35 -0500, Lars Uffmann <aral@nurfuerspam.de> said:
> dmparadiselm wrote:
>> It is guaranteed that a NULL pointer deletion is harmless in C++
>> standard.
>
> @OP: However, as dmparadiselm pointed out, you really want to set your
> pointers to NULL after deletion, for a
> delete p;
> might (will) wreak havoc on your program if p is not NULL but there is
> no memory reserved anymore.
>
But setting every deleted pointer to 0 doesn't solve real problems.
void f(void *ptr)
{
delete ptr;
ptr = 0;
}
int main()
{
int *ip = new int;
f(ip);
delete ip; // double delete, despite setting ptr to 0
return 0;
}
--
Pete
Roundhouse Consulting, Ltd. (www.versatilecoding.com) Author of "The
Standard C++ Library Extensions: a Tutorial and Reference
(www.petebecker.com/tr1book)