¿Es posible memcpy desde un array doble a un array flotante de forma segura?C++ memcpy del array doble al array flotante
Respuesta
Depende de lo que quieras. Los valores ciertamente no serán preservados. Si lo necesita, use 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);
}
Nº
Los comentarios deben tener al menos 15 caracteres de longitud, ¿pero esto no es válido para las respuestas? Extraño :) – fredoverflow
Las respuestas deben tener al menos 15 caracteres de largo también :) –
@Daniel Daranas: ¡Jaja! Acabo de ver tu feo hack para "superar" la limitación. Inteligente;) – ereOn
El problema es que no hay garantía de que la representación binaria del compilador de un double
es la representación equivalente de un float
. Para usar memcpy
para tipos de múltiples bytes, la representación subyacente debe ser la misma (el mismo diseño). Puede copiar de manera segura float
a float
, int
a int
y double
a double
.
que están destinados para comportamiento indefinido cuando el tipo de fuente no coincide con el tipo de destino, como la copia de long
a char
o float
a double
. La función memcpy
no realiza ninguna conversión ni realiza ninguna promoción. Simplemente copia.
En el caso general - no.
En casos específicos, en una plataforma determinada, la representación de float
y double
puede ser la misma, y la copia tendrá éxito. Pero de todos modos no tiene ningún sentido práctico.
- 1. C array a PyArray
- 2. Conversión rápida del vector C/C++ al array Numpy
- 3. Tratar C cstyle array como std :: array
- 4. C Array/Puntero problema
- 5. Sizeof Puntero al array
- 6. NSArray to C array
- 7. C++ Clasificación clase Array
- 8. C# Array or Dictionary?
- 9. Estricto aliasing y std :: array vs C-style array
- 10. Objetivo C Boolean Array
- 11. C# Vectorized Array Addition
- 12. C# Splitting An Array
- 13. C: array estático
- 14. C# Cast Entire Array?
- 15. C++ array inicialización
- 16. C++ 11 std :: array
- 17. Android string-array a Array
- 18. CoffeeScript “Array()” vs “new Array()”
- 19. C - initialize array of structs
- 20. Enviar matriz flotante del servidor C++ al cliente C#
- 21. ¿Diferencias significativas en Array vs Array List?
- 22. Rubí: Array contenida en Array, cualquier orden
- 23. $ _POST Array del formulario html
- 24. Fundamentos del índice Javascript Array
- 25. IsNullOrEmpty equivalent for Array? C#
- 26. C++ Vector vs Array (Time)
- 27. C++ union array y vars?
- 28. Delegate Array
- 29. Diferencia entre array [n] y array []?
- 30. java convert object array a int array
Depende de lo que usted quiera decir con seguridad. –