On Friday, September 19, 1997 5:30 AM, Sammy [SMTP:samedi@DHC.NET] wrote:
> On Thu, 18 Sep 1997, someone wrote:
<snip>
> I allocate memory with CREATE for test, then allocate memory as needed
> for
> name, then I free name, then free test, for some reason it doesn't seem
> to
> be set to null, so after I free'd test I do a test = NULL, I was
> wondering
> if this was standard behavior ?
>
> THe ANSI C standard doesn't require free to NULL the pointer, so some
> compilers may NULL it, others may leave it alone, allowing you to continue
> to read the data in it, while writing to it is probably going to result in
> a segfault. If you want it to be set to NULL after a free, you'll have to
> do it yourself.
>
All true, but enter macros :-)
#define FREE(x) (free(x); x=0)
Would that not solve the problem rather nicely? Be easy enough to search
through all your free calls and change them to FREE with a good editor so
that you can remember the difference later. You could redefine free.. but that
could lead to confusion later..
--Mallory
I can picture in my mind a world without war, a world without hate.
And I can picture us attacking that world, because they'd never
expect it. - Jack Handey
+------------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
+------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/08/00 PST