在malloc之前使用(float *)的必要性
这个问题在这里已经有了答案:
Malloc返回一个指向void的指针。
(float*)
从指向void的指针转换为指向float的指针
在C中,这不是必需的,在C ++中是这样的,所以有人建议让你的代码与C ++编译器兼容。
但你不需要那样做。 (和一些C粉丝反对)
malloc
会给你一个指向void
的指针,你不能使用它来处理任何与你想用float
操作相关的东西。 为了能够使用在返回的内存位置分配的变量,您需要将其转换为float*
以便可以取消引用该指针并将其用作float
。
但是,当你写下你的问题时,你应该将malloc
的返回值转换为float*
,然后在将它分配给x
之前立即将其解引用,因为你没有将x
声明为float
指针。
编辑:正如评论者指出的,显式转换只需要在C ++中,而不是在C中。
链接地址: http://www.djcxy.com/p/28429.html