From: Ullrich von Bassewitz (uz_at_musoftware.de)
Date: 2003-08-26 00:08:02
On Mon, Aug 25, 2003 at 09:38:07PM +0200, Groepaz wrote:
> wow, i didnt know that... i've worked with a bunch of machines now and never
> stumbled over one were zeroing out bss would not be the right thing to do....
Yes, but the thing where most people get a hickup is that
char* p = 0;
does not assign a bit pattern of all zeroes to p. Instead, "0" is converted to
the NULL pointer constant of the machine, may it be something consisting of
all zero bits or not.
> have an example handy where it would have been wrong by any chance?
I don't have any examples handy, but
http://www.eskimo.com/~scs/C-faq/s5.html
for english readers, and
http://www-info2.informatik.uni-wuerzburg.de/dclc-faq/kap1.html
for german readders will give an introduction.
As an additional hint, the above is the reason why calloc() is non portable.
It will write binary zeroes to the allocated memory, but sicne this will not
set pointers to NULL and floats to 0.0 on all platforms, it should be avoided.
Regards
Uz
--
Ullrich von Bassewitz uz_at_musoftware.de
----------------------------------------------------------------------
To unsubscribe from the list send mail to majordomo_at_musoftware.de with
the string "unsubscribe cc65" in the body(!) of the mail.
This archive was generated by hypermail 2.1.3 : 2003-08-26 00:08:50 CEST