Re: [PATCH] Trivial warning fix for imap-send.c
- From
A Large Angry SCM <gitzilla@gmail.com>
- Date
- Mar 12, 2006, 19:20 UTC
- Message-ID
- <4414747B.7040700@gmail.com>
- In-Reply-To
- <slrne18of5.fr9.mdw@metalzone.distorted.org.uk>
Mark Wooding wrote:
Show 11 quoted lines
> Linus Torvalds <torvalds@osdl.org> 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.