This is the mail archive of the
mailing list for the GCC project.
ANSI C / assignment makes pointer from integer
- To: gcc at gcc dot gnu dot org
- Subject: ANSI C / assignment makes pointer from integer
- From: Sebastian Ude <ude at handshake dot de>
- Date: Tue, 07 Aug 2001 14:25:15 +0200
- Reply-To: ude at handshake dot de
Assume this (very common) situation:
s = strdup("foo");
Looks pretty harmless, doesn't it ?
But both gcc 2.95.3 and egcs 1.1.2 give me the following warning when
compiling this code with -ansi:
warning: assignment makes pointer from integer without a cast
The warning disappears if you would change the code like this:
s = (char*) strdup("foo");
But why ?
What kind of ANSI / ISO rule do I violate ?
Why the hell is a cast neccessary at this point in order not to provoke a
warning when compiling with -ansi ?
Thanks for any explanations,