Comment effectuer une conversion endian sur un vecteur de structures?Big-> little (little-> big) conversion endian de std :: vecteur de structures
Par exemple:
struct TestStruct
{
int nSomeNumber;
char sSomeString[512];
};
std::vector<TestStruct> vTestVector;
Je sais comment échanger des valeurs int, mais comment remplacer un vecteur ensemble de struct personnalisés?
Si je comprends votre structure, le seul champ qui nécessite un échange endian est le nSomeNumber. Il suffit donc de boucler le vecteur comme vous le feriez normalement et d'échanger uniquement le champ int. Le champ tableau de char serait le même sur les deux endians. – bramp
Vous bouclez les éléments du vecteur et appliquez la conversion d'endianness à chaque structure du vecteur. Ou quelle est votre question? – Dummy00001
Si 'nSomeNumber' est supposé passer sur le réseau à un moment donné, vous devez utiliser un type entier de taille fixe (quelque chose comme' uint16_t' ou 'uint32_t') car la taille de' int' n'est pas ** garantie . – ereOn