これはおそらく非常に基本的な質問ですが、特定の Valgrind の問題を解決しようとしているときに出くわしました。どうやら、カスタム構造体の初期化されていないパディング バイトが原因でエラーが発生していたようです。構造パディングの全体的な概念はすでに理解していますが、データの配置がどのように管理されているかについてはまだ疑問があります。いくつかのサイトでこのテーマに関する多くの情報とここでの Q&A を見つけましたが、まだ疑問が残っています。
バイト アラインメント (読み取られるデータ チャンクのサイズ) は、システム全体で設定されているか、プログラム全体に対してコンパイラによって選択されているか、またはコード内の各構造に固有のものですか (そうであれば、バイナリにハードコードされていますか)? そして、システム アーキテクチャ (32 ビット対 64 ビット) との関係は正確には何ですか? 現在デフォルトとして使用している値を見つけるにはどうすればよいですか?