[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