首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从双精度数组到浮点数组的C++ memcpy

从双精度数组到浮点数组的C++ memcpy
EN

Stack Overflow用户
提问于 2010-06-02 23:18:16
回答 3查看 11.7K关注 0票数 12

是否可以安全地将memcpy从双精度数组转换为浮点数组?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-06-02 23:19:15

这取决于你想要什么。这些值肯定不会被保留。如果需要,可以使用std::copy

代码语言:javascript
复制
#include <algorithm>

int main()
{
    double a[] = {1.618, 3.1416, 2.7, 0.707, 1.0};
    float b[5];
    std::copy(a, a + 5, b);
}
票数 32
EN

Stack Overflow用户

发布于 2010-06-03 00:52:11

一般情况下-不是。

在特定情况下,在给定的平台上,floatdouble的表示可能相同,并且复制将会成功。但不管怎样,这都没有任何实际意义。

票数 1
EN

Stack Overflow用户

发布于 2018-12-19 06:07:54

memcpy是类型不可知的(只看到字节),不能进行类型转换。就像@AzP说的那样使用std::transform

代码语言:javascript
复制
std::transform(a, a + 5, b, [](double d) -> float {return float(d);});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2959069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档