在malloc之前使用(float *)的必要性

这个问题在这里已经有了答案:

  • 我输入malloc的结果吗? 27个答案

  • 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

    上一篇: Necessity of use (float*) before malloc

    下一篇: Why does c++ forbid implicit conversion of void*?