What is the use of typecast in malloc? If I don't write the typecast in malloc then what will it return? (Why is typecasting required in malloc?)
I assume you mean something like this:
int *iptr = (int*)malloc(/* something */);
And in C, you do not have to (and should not) cast the return pointer from malloc
. It's a void *
and in C, it is implicitly converted to another pointer type.
int *iptr = malloc(/* something */);
Is the preferred form.
This does not apply to C++, which does not share the same void *
implicit cast behavior.
You should never cast the return value of malloc()
, in C. Doing so is:
void *
is compatible with any other pointer type (except function pointers, but that doesn't apply here).So: there are no benefits, at least three drawbacks, and thus it should be avoided.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With