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]);
}
}
Lo que hace este método ahora es invertir bytes en la memoria. Lo que me gustaría saber es si hay una mejor manera de obtener el mismo efecto. Toda la parte "tamaño/2" parece algo malo, pero no estoy seguro.¿Hay alguna forma mejor de invertir una matriz de bytes en la memoria?
EDIT: Me acabo de dar cuenta de lo malo que era el título que puse para esta pregunta, así que [con suerte] lo solucioné.
Su ejemplo parece defectuoso, ¿cómo puede cambiar dos caracteres sin una ubicación? Sospecho que necesita pasar la dirección. – leppie