Re: free()
- From: Ian Collins <ian-news@xxxxxxxxxxx>
- Date: Wed, 14 Feb 2007 09:16:34 +1300
Richard Bos wrote:
"santosh" <santosh.k83@xxxxxxxxx> wrote:Can you cite an example where setting a pointer to NULL could mask a
Racaille wrote:
On Feb 10, 2:13 pm, "santosh" <santosh....@xxxxxxxxx> wrote:
things yourself. One safe practise is to immediately set a pointer to
NULL after calling free() on it. Passing a null pointer to free() is
harmless.
this is a very bad idea.
instead of having your code crash like hell in the first phases of debugging,
which will allow you to fix the thing quick & properly, you will happily
call free() many times on the same pointer, and build crap around that broken
logic, and then call for a garbage collector :)
I argue that attempting to ensure that pointers are either null or
have legally deferencible values is better.
The problem with that is "attempting". You will, sooner or later, fail
in your attempt. And then, because you believe that all your pointers
are either null or valid, you will not be able to find the bug until
someone else points it out to you. Making sure that you know which of
your pointers are still in use _is_ possible, and does not have this
problem.
bug? The way I see it is there are three things you can do with a
pointer, test it, dereference it and free it. Once set to NULL, the
first to will fail and the third is harmless.
--
Ian Collins.
.
- Follow-Ups:
- Re: free()
- From: Christopher Benson-Manica
- Re: free()
- References:
- free()
- From: dbansal
- Re: free()
- From: santosh
- Re: free()
- From: Racaille
- Re: free()
- From: santosh
- Re: free()
- From: Richard Bos
- free()
- Prev by Date: Re: Requesting advice how to clean up C code for validating string represents integer
- Next by Date: Re: anti-aliasing
- Previous by thread: Re: free()
- Next by thread: Re: free()
- Index(es):
Relevant Pages
|