realloc

Oisin oisin at cmtl01.UUCP
Mon Apr 3 06:36:09 AEST 1989


in Article 131 of comp.std.c: gregg at ihlpb.ATT.COM (Wonderly)  says:
>From article <10170 at bloom-beacon.MIT.EDU>, by scs at adam.pika.mit.edu (Steve Summit):
[ anecdote deleted ]
>> kept secret that realloc is supposed to behave gracefully at
>> a slightly special-cased boundary point: when handed a NULL
>> pointer and a nonzero size, it acts essentially as a malloc.
>
>I read the man page for realloc and it said nothing about this.  Is it
>not possible for you to type
>
>	if (ptr == NULL)
>		ptr = malloc (nbytes);
>	else
>		ptr = realloc (ptr, nbytes);
>
>or are you one of those people that assumes (*((char *)NULL) == 0) too?
[ more flame deleted ]

Pardon my ignorance, but if I'm wrong you can flame me too...
Does the draft not specify that whatever implementation of NULL is used, 
the compiler must guarantee that a ptr containing that implementation's
version of NULL must test as false?  (Notice I did not say it had to
BE false, just that the compiler must evaluate a logical test on it
as being false).  I'm don't write compilers or anything like that..
I'm just a "dumb end user" of C, but if my understanding is wrong, then
I and a lot of other programmers will have to "mend our ways".  I
stopped wasting my employers time with the redundant "== NULL" when
I read about that guarantee being in the standard.  Please correct
me if I am "bugging" my programs.

........................................................................
Oisin "Curly" Curtin -- uucp:uunet!attcan!cmtl01!oisin
Disclaimer- Opinions are my own.  CNR, AT&T and my wife don't want them.
........................................................................
Money is the root of all evil, and man needs roots



More information about the Comp.lang.c mailing list