我无法将float
转换为float *six(const int *x) {
float *p = malloc(sizeof(x));
p = (float *)x;
return p;
}
int main() {
float *p_six;
int i4 = 4, i432 = 432;
p_six = six(&i4);
printf("%d == %f\n", i4, *p_six);
free(p_six);
}
。我试图键入转换但它似乎不起作用。我做错了什么?
main
答案 0 :(得分:3)
您无法将float *
指向int
并期望它被正确解释。它们有不同的表示形式,所以你最终会得到垃圾。
您只需将int
值分配给float
即可转换。
int main()
{
float f;
int i = 4;
f = i;
printf("%d == %f\n", i, f);
return 0;
}
输出:
4 == 4.000000