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」の部分全体が悪いもののように見えますが、わかりません。メモリ内のバイト配列を逆転させるより良い方法はありますか?
編集:私は、この質問のためにタイトルを付けたのが悪かったことを認識したので、うまくいけばそれを修正しました。
あなたの例に欠陥があるようですが、場所を指定せずに2つの文字をどうやって入れ替えることができますか?私はあなたがアドレスを渡す必要があると思う。 – leppie