...
If stdlib.h
is not included, the compiler makes the assumption that malloc()
has a return type of int
. When the result of a call to malloc()
is explicitly cast to a pointer type, the compiler assumes that the cast from int
to a pointer type is done with full knowledge of the possible outcomes. This may lead to behavior that is unexpected by the programmer.
Code Block | ||
---|---|---|
| ||
char *p = (char *)malloc(10); |
...
By ommiting the explicit cast to a pointer, the compiler can determine that an int
is attempting to be assigned to a pointer type and will generate a warning that may easily be corrected.
Code Block | ||
---|---|---|
| ||
#include <stdlib.h> ... char *p = malloc(10); |
...