スタック アラインメントの問題に悩まされた後、ヒープも 8 オクテット境界にアラインする必要があるかどうか疑問に思い始めました。
ARM Cortex EABI は、外部関数へのすべての呼び出しについて、スタックを 8 アラインする必要があると述べています。ヒープの配置に制限があるかどうかについての情報は見つかりませんでした。ヒープも 8 でアラインする必要があるという提案がいくつか出回っているようですが、公開されているほとんどのメモリ管理コードでは 4 でアラインされています。
ヒープとスタックの間でコピーする場合、整列は保持されないため、スタック整列の要件は (ワード境界が尊重される限り) ヒープ整列とは何の関係もありません。また、8 オクテット幅の項目を指すときに、コンパイラが 8 アラインされたポインターに制限されるべき理由が思いつきません。
ヒープには4オクテットのアライメントで十分であることを誰でも確認できますか?