理想的にはコピーせずに、blittable 構造体の配列として再解釈したいバイト配列があります。安全でないコードを使用しても問題ありません。バイト数と、最後に取得したい構造体の数を知っています。
public struct MyStruct
{
public uint val1;
public uint val2;
// yadda yadda yadda....
}
byte[] structBytes = reader.ReadBytes(byteNum);
MyStruct[] structs;
fixed (byte* bytes = structBytes)
{
structs = // .. what goes here?
// the following doesn't work, presumably because
// it doesnt know how many MyStructs there are...:
// structs = (MyStruct[])bytes;
}