Est-il possible de sauvegarder en toute sécurité un memcpy d'un tableau double vers un tableau flottant?C++ memcpy d'un tableau double à un tableau flottant
Répondre
Dépend de ce que vous voulez. Les valeurs ne seront certainement pas conservées. Si vous en avez besoin, utilisez 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 °
Les commentaires doivent comporter au moins 15 caractères, mais cela ne vaut pas pour les réponses? Étrange :) – fredoverflow
Les réponses doivent contenir au moins 15 caractères. :) –
@Daniel Daranas: Haha! Juste vu votre hack laid pour "surmonter" la limitation. Clever;) – ereOn
Le problème est qu'il n'y a aucune garantie que la représentation binaire d'un double
du compilateur est la représentation équivalente d'un float
. Pour utiliser memcpy
pour les types multi-octets est que la représentation sous-jacente doit être la même (même mise en page). Vous pouvez copier en toute sécurité float
à float
, int
à int
et double
à double
.
Vous sont destinés à un comportement non défini lorsque le type de source ne correspond pas au type de destination, telles que la copie de long
à char
ou float
à double
. La fonction memcpy
ne fait aucune conversion ou n'effectue aucune promotion. Ça ne fait que copier.
Dans le cas général - pas. Dans certains cas, sur une plate-forme donnée, la représentation de float
et de double
peut être la même, et la copie réussira. Mais cela n'a aucun sens pratique de toute façon.
- 1. IOS texture memcpy à double tableau
- 2. calculer matrice inverse à un flottant [,] tableau
- 3. Utiliser memcpy avec le nom du tableau
- 4. C memcpy à l'envers
- 5. Comment envoyer un double tableau de C# à C++
- 6. c tableau de double pointeur
- 7. Initialiser un tableau flottant sur la construction
- 8. Comment passer un double tableau à une fonction dans C?
- 9. Débogage un grand tableau à double
- 10. tableau bind de double à double * et
- 11. impression java un double tableau
- 12. tableau flottant Null en java
- 13. Utiliser memcpy pour copier une série d'éléments d'un tableau
- 14. Arrondir un flottant/double conditionnellement
- 15. convertir un tableau double 2d en un tableau int 2d
- 16. Conversion de tableau double en tableau IComparable
- 17. tableau Multipliant double
- 18. tableau double par des pointeurs en C
- 19. Passage d'un tableau C# de structures avec un tableau de double membre en C par référence
- 20. double * tableau C++, l'allocation de test
- 21. C - Tableau dans un tableau
- 22. "glibc détectée - double libre ou corruption" pendant memcpy du tableau complexe
- 23. Enregistrement d'un double tableau dans un fichier texte C#
- 24. Comment shmget et shmat un double tableau en C?
- 25. double tableau associatif ou tableau indexé + associatif
- 26. c variable égale ou memcpy
- 27. Définir un double tableau sans taille fixe?
- 28. Passant la valeur de la chaîne à double tableau C#
- 29. convertir Tableau décimal en tableau double
- 30. Enregistrer le tableau de chaînes et le tableau flottant de C# vers le fichier Excel
Cela dépend de ce que vous entendez par en toute sécurité. –