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

时间:2013-02-22 20:02:14

标签: c

在任何指针变量的程序中我们经常使用:

float *x;
x=(float*)malloc(a*sizeof(long int));

我想知道为什么我们在(float*)前面使用malloc

2 个答案:

答案 0 :(得分:1)

Malloc返回指向void的指针。

(float*)从指向void的指针转换为指向float

的指针

在C语言中没有必要,在C ++中它是如此,所以有些人建议让你的代码与C ++编译器兼容。

但你不需要这样做。 (有些C粉丝反对它)

答案 1 :(得分:-2)

malloc将为您提供一个指向void的指针,您不能将其用于与float相关的任何内容。为了能够使用在返回的内存位置分配的变量,您需要将其转换为float*,以便您可以取消引用该指针并将其用作float

但是,当您编写问题时,您应该将malloc的返回值转换为float*,然后在将其分配给x之前立即取消引用它,因为您已经未将x声明为float的指针。

编辑:正如评论者指出的那样,显式广告在C ++中只是需要,而不是在C中。