データ構造アライメント
データ構造アライメント（データこうぞうアライメント、）は、コンピュータのメモリ（主記憶装置）内のデータにアクセス（読み書き）する際に、メモリ上の位置の調整を行うことである。
そこには、別々だが関連する2つの問題、すなわち、データ整列とデータ構造パディングがある。最新のコンピュータがメモリアドレスを読み書きする場合には、ワードサイズのチャンク（32ビットシステムの場合は4バイトのチャンク）単位で実行される。データ整列とは、ワードサイズの倍数に等しいメモリアドレスにデータを配置することであり、CPUがメモリを処理する方法によってシステムのパフォーマンスが向上する。データを整列させるには、最後のデータ構造の終端部分と次のデータ構造の開始部分の間に未使用のバイトを挿入する必要があり、これを「データ構造パディング」という。
例えば、コンピュータのワードサイズが4バイトの場合（バイトは、ほとんどのコンピュータで8ビットを意味するが、一部のシステムでは異なる可能性がある）、読み取るデータは4の倍数のメモリアドレスにある必要がある。例えば、データが16番地ではなく14番地から開始する場合、コンピュータは、4バイトのチャンクを2つ以上読み取り、要求されたデータが読み出される前に何らかの計算を実行しなければならないか、アライメントエラーを生成する可能性がある。よって、その前のデータ構造の終端が13番地にあったとしても、次のデータ構造は16番地から始める必要がある。そのため、2つのパディングバイトが2つのデータ構造の間の14番地と15番地に挿入される。
データ構造のアライメントは現代の全てのコンピュータにとって基本的な問題であるが、多くのコンピュータ言語およびコンピュータ言語の実装がデータ整列を自動的に処理する。Ada、PL/I、C言語（C11以降）・C++（C++11以降）、D言語、Rust、アセンブリ言語は、特定の特殊な状況で有用なデータ構造のパディングを少なくとも部分的に制御することを可能にしている。