可以安全地从双数组memcpy到浮点数组吗?从双数组到浮点数组的C++ memcpy
回答
取决于你想要的。值肯定不会被保留。如果您需要,请使用std::copy
。
#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);
}
号
评论必须至少包含15个字符,但这并不适用于答案?奇怪:) – fredoverflow 2010-06-02 15:46:38
答案必须至少有15个字符:) – 2010-06-02 15:59:06
@Daniel Daranas:哈哈!只是看到你的丑陋攻击“克服”了限制。聪明;) – ereOn 2010-06-02 16:07:26
的问题是,有没有保证,一个double
的编译器的二进制表示是float
的等效表示。为了对多字节类型使用memcpy
,基础表示必须是相同的(相同的布局)。您可以安全复制float
至float
,int
至int
和double
至double
。
你注定为未定义行为当源类型不匹配目标类型,如复制从long
到char
或float
到double
。 memcpy
函数不会进行任何转换或执行任何促销。它只是复制。
一般情况 - 没有。
在特定情况下,在给定的平台上,float
和double
的表示可能相同,并且副本将成功。但它无论如何都没有任何实际意义。
- 1. std :: copy复制一个浮点数组的双精度数组?
- 2. 从一个字符数组到一个整数的C++ memcpy
- 3. 浮点数组到图像
- 4. 找到浮点数组
- 5. C++ boost bo数据浮点数组
- 6. 将字符串数组和浮点数组从C#保存到Excel文件
- 7. int数组上的浮点异常 - C
- 8. 目标中的浮点数组C
- 9. C#将结构数组复制到双精度数组
- 10. 将双浮点数从.dat文件存储到一维数组中
- 11. 字符数组到浮点数转换
- 12. 如何memcpy C中的二维数组?
- 13. 是C Vaxocentrist中的数组memcpy?
- 14. 如何将2维浮点数组从QML传递到C++?
- 15. 用数值c替换浮点数值a到b大数组
- 16. 数组从C++到C#
- 17. c中的浮点数和双精度#
- 18. OpenGL的:两个顶点数组+双数组索引
- 19. 二维字符串数组浮点数组c#
- 20. 二维数组上的memcpy
- 21. 如何将浮点数组转换为Java中的双精度数组?
- 22. C#传递双数组到C++ dll
- 23. 从C函数调用传递一个浮点数组的Objective C函数
- 24. C++数组[从:到]
- 25. c#转换从大到小排序浮点数的字节数组
- 26. 返回浮点数组
- 27. C浮点数和双重比较
- 28. Objective-C浮点数/双精度
- 29. 列表/数组字符串到numpy浮点数组
- 30. 从memcpy回到双变量
取决于您的安全。 – 2010-06-02 15:24:48