这是动态分配float变量的正确方法

问题描述 投票:0回答:1

在此代码中,这是正确的方法吗?

float pf = (float) malloc (sizeof(float));
c++
1个回答
0
投票

这不是正确的方法。在几个不同的严重级别上,它是不正确的。

首先,动态分配任何类型的对象都会返回指向对象的指针,而不是对象本身。

动态分配的浮点数将返回一个指向浮点数的指针,因此声明为float *pf = (float*) ...

这意味着强制类型转换为(float*) not (float)

更深入,因为使用malloc的语言标记是C ++,所以这是不正确的,或者充其量是过时的。使用new和delete,而不是malloc和free。

代替C样式转换(float *),static_cast将是现代的C ++选择。

在编译并给出正确结果的意义上,可以容易地将代码固定为正确的。然后,从“有效”到“最佳实践”又迈出了一大步。

© www.soinside.com 2019 - 2024. All rights reserved.