null pointers (was: Nice() in Sys V.4)
Steve Summit
scs at adam.mit.edu
Mon Apr 1 15:12:15 AEST 1991
In article <6905 at segue.segue.com> jim at segue.segue.com (Jim Balter) writes:
>...but note that many many programs use memset or calloc
>to clear arrays or structures that contain pointers.
>
>C implementations that use something other than a zero bit pattern for NULL
>pointers, aside from indicating bad judgement, are likely also to be
>non-conforming, if they use BSS or the equivalent for
>
>void *foo[100000];
>
>since ANSI requires that it be the same as
>
>void *foo[100000] = {0, ... repeated 100000 times};
>
>I really wouldn't recommend comp.lang.c as a high quality source.
I can't claim that comp.lang.c has a stellar signal/noise ratio,
but, as Usenet groups go, it is generally more reliable for
C-specific information than other groups. Regular readers of
comp.lang.c know that:
there are good reasons for an architecture's choosing to
use a nonzero internal value for null pointers;
it is invalid to use calloc or memset to fully initialize
aggregates containing pointers (if it is desired to
initialize the pointers to null pointers); and
systems which use nonzero internal values for null
pointers may not use zero-initialized segments
(comparable to Unix' bss) for statically-allocated
pointer data, but must emit explicitly initialized data
segments.
All of these issues are discussed in the comp.lang.c Frequently
Asked Questions list.
Steve Summit
scs at adam.mit.edu
More information about the Comp.unix.programmer
mailing list