マネージド/アンマネージドアレイの相互運用性では、通常のアレイの相互運用性がない場合があります
fixed (byte* data = new byte[length])
{
// work with the array
}
むしろ、次のように、参照のみを取得する配列を固定したいと思います。
IntPtr dataPtr = camera.Image2d.GetDataBuffer();
fixed (byte* data = (byte *)dataPtr)
{
// work with the array
}
1)私の理解では、「fixed」はメモリ位置をメモリマネージャの低レベルに固定し、それを指すオブジェクトを気にしないため、下のコードも機能するはずです。(つまり、「ルート」/直接ポインターはありません。おそらくそのような概念はありませんが。)
もう1つの質問:
2)「fixed」を使用するための要件は、実行されたコードと同時に実行されているCLRメモリマネージャーから来ているため、いつでも配列を移動できますか?