【发布时间】:2017-09-04 03:05:06
【问题描述】:
我无法将 int 转换为 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);
}
【问题讨论】:
-
函数中的
p = (float *)x;赋值抹掉了上一行分配的内存指针,所以每次调用函数都会有内存泄漏。
标签: c pointers type-conversion int