次のコードを想定します。
struct A
{
int a;
int b;
};
char* buffer = receivedFromSomeWhere();
A a = *reinterpret_cast<A*>(buffer + 1);
buffer + 0が のサイズでアラインされているint場合、buffer + 1アラインされていないメモリ上にある可能性が最も高くなります。デフォルトのコピー コンストラクターは、2 つの整列されていない int メンバーaとb. x86/x64 アーキテクチャでは、コードの速度が低下することを除いて、コピーの構築に悪影響を及ぼしaますか?
適切なシリアライゼーションにより、整列されていないメモリの問題が解決されることはわかっています (A構造体が で整列されるように、どこかにパディングを追加することによりbuffer) が、私の場合、この部分については責任を負いません。