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]);
}
}
Что делает этот метод прямо сейчас, он меняет байты в памяти. Я хотел бы знать, есть ли лучший способ получить тот же эффект? Вся часть «размер/2» кажется плохой, но я не уверен.Есть ли лучший способ изменить массив байтов в памяти?
EDIT: Я только понял, насколько плохо заголовок, который я поставил для этого вопроса, был, поэтому я [надеюсь,] исправил его.
Ваш пример кажется ошибочным, как вы можете обменять два символа без места? Я подозреваю, что вам нужно пройти по этому адресу. – leppie