アーキテクチャ ARM9. プログラミング言語 C.
サードパーティのスタックがあり、呼び出しの 1 つがpBuffer
メモリ位置への pointer( ) を取ります。スタック内では、渡されたポインターを自由に移動し、必要に応じてアクセスできます。残念ながら、彼らは渡されたポインターをオフセットし、奇数/一致しないメモリ位置からこれを実行しようとした別の関数にそれを渡しました
((uint16 *)pBuffer)[index] = value;
wherevalue
は typeuint16
であり、index
境界がチェックされ、indexespBuffer
です。これにより、アラインされていないメモリ アクセス例外が発生します。ヒープ上をpBuffer
指します。char *
前述のように、サードパーティのスタックを覗くことができても、コードを公式に更新することはできません。そのため、プロバイダーに通知し、次のリリースで更新を提供します。
これに対する回避策があるかどうかを理解したいと思います。非整列アクセスに違反せずに上記の割り当てを実行するにはどうすればよいですか? そのような問題を解決するための最良のアプローチは何ですか。