typedef unsigned char Byte;
...
void ReverseBytes(void *start, int size)
{
Byte *buffer = (Byte *)(start);
for(int i = 0; i < size/2; i++) {
std::swap(buffer[i], buffer[size - i - 1]);
}
}
Ciò che questo metodo fa ora è invertire i byte in memoria. Quello che mi piacerebbe sapere è, c'è un modo migliore per ottenere lo stesso effetto? L'intera parte "size/2" sembra una brutta cosa, ma non ne sono sicuro.Esiste un modo migliore per invertire una matrice di byte in memoria?
EDIT: Ho appena realizzato quanto fosse pessimo il titolo che ho inserito per questa domanda, quindi l'ho riparato.
Il tuo esempio sembra imperfetto, come puoi scambiare due caratteri senza una posizione? Sospetto che tu debba passare l'indirizzo. – leppie