From: A Large Angry SCM Date: Sun, 12 Mar 2006 19:20:27 GMT Subject: Re: [PATCH] Trivial warning fix for imap-send.c Message-ID: <4414747B.7040700@gmail.com> In-Reply-To: Mark Wooding wrote: > Linus Torvalds wrote: > >>So in modern C, using NULL at the end of a varargs array as a pointer is >>perfectly sane, and the extra cast is just ugly and bowing to bad >>programming practices and makes no sense to anybody who never saw the >>horror that is K&R. > > No! You can still get bitten. You're lucky that on common platforms > all pointers look the same, but if you find one where `char *' (and > hence `void *') isn't the same as `struct foo *' then, under appropriate > circumstances you /will/ unless you put the casts in. Please explain how malloc() can work on such a platform. My reading of the '89 ANSI C spec. finds that _ALL_ (non function) pointers _are_ cast-able to/from a void * and that NULL should be #defined as (void *). See 3.2.2.3 and 4.1.5 if interested.