c - malloc 中是否需要类型转换?

标签 c casting malloc

<分区>

malloc中typecast有什么用?如果我不在 malloc 中编写类型转换,那么它会返回什么? (为什么malloc需要类型转换?)

最佳答案

我假设你的意思是这样的:

int *iptr = (int*)malloc(/* something */);

并且在 C 中,您不必(也不应该)强制转换 malloc 的返回指针。它是一个 void *,在 C 中,它被隐式转换为另一种指针类型。

int *iptr = malloc(/* something */);

是首选形式。

这不适用于 C++,它不共享相同的 void * 隐式转换行为。

关于c - malloc 中是否需要类型转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4993327/

相关文章:

c - 如何将 PPM 文件读入标准输入

c - 如何向左旋转位并向右添加旋转位

c - 使用 mmap 重新编码 malloc 奇怪的段错误

linux - malloc() 是根据单线程还是多线程执行不同的?

c++ - 为什么我的重载转换运算符无法访问私有(private)成员?

c - 动态内存阵列使可执行文件崩溃

c - 为什么对嵌入式系统使用低级语言或接近它( C )而不是高级语言,当所有语言都被编译为机器代码时?

c - c中的While循环递增

android - findViewById 的转换结果是多余的

c++ - objectCast 横向转换