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