[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-devel
Subject: Re: delete [] 0 (was: Seg Fault in KPanel /KDE_1_1_Branch
From: iglio () fub ! it (Pietro Iglio)
Date: 1999-07-06 7:40:32
[Download RAW message or body]
At 16.51 05/07/99 +0200, Stephan Kulow <coolo@kde.org> wrote:
...
>> p->clear();
>> + if (callbacklist)
>> + delete [] callbacklist;
>
>Well, delete [] 0 is very much legal. I don't know why people keep
>on adding "if (ptr) delete ptr;" :(
'delete 0', free(0), etc. may lead to portability problems. There are
malloc/free implementations that raise an error if you free a null
pointer. Some memory tracking tools, moreover, issue a warning message
or an error if you free a null pointer.
As a general portability rule, I suggest:
- check if the pointer is null before calling delete/free;
- assign null to a pointer after a call to free/delete:
delete p;
p = 0L;
// this will trap further attempts to use *p
-- Pietro
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic