Is typecast required in malloc?

c, casting, malloc

Solution

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.

Problem

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?)

Original source

Related problems