0
新しいバイト配列を作成して、構造体をバイト配列に変換する方法の例がたくさんあります。既存のバイト配列に構造体を書き込む方法は?
しかし、私はこれを避けようとしています。私はバイト[1024]のメッセージバッファーを持っていますし、インデックス1からこのバイト配列に自分の構造体を書きたいと思います。インデックス0はヘッダーなので、私はそれをスキップします。
この例は、新しいバイト配列を作成せずに実行できません。これも可能ですか?
public static byte[] GetBytes<T>(T data)
{
int size = Marshal.SizeOf(data);
byte[] arr = new byte[size];
IntPtr ptr = Marshal.AllocHGlobal(size);
Marshal.StructureToPtr(data, ptr, true);
Marshal.Copy(ptr, arr, 0, size);
Marshal.FreeHGlobal(ptr);
return arr;
}
これに伴う問題は、その私は以降、インデックス1にそれを適用する必要がインデックス0で新しい配列上のオブジェクトを書いている:私は現在、バイト配列にオブジェクトを変換する方法
。インデックス0はstructのサイズをバイトで指定します。一例として、既存のコードを使用して
あなたがしたい場合新しいバイト配列を作成するのではなく、既存のバイト配列を使用して、既存のバイト配列を渡して使用します。あなたはそれを使ってどんな問題を抱えていますか? – Servy
どのシリアル化APIを使用していますか?どの例?任意の構造体をバイト配列に変換する標準的な方法はありません。そのため、より多くの情報や具体的な例で質問を制約しない限り、答えは完全に上書きされる可能性があります。 –
新しいバイト配列の作成に使用しているコードを表示してください。 –