.NET 2.x unsafe byte array to struct array - C#
Формулировка задачи:
Есть массив байт размером N.
Есть структура, внутри которой enum поле размером в 1 байт.
Как с помощью unsafe кода преобразовать массив байт в массив структур? Я пробовал, но чего-то хреново вышло, не то что надо. Первый элемент нормально преобразовал, а дальше по нулям
Решение задачи: «.NET 2.x unsafe byte array to struct array»
textual
Листинг программы
private static unsafe MyStruct[] Convert(byte[] data, int structCount)
{
int structSize = Marshal.SizeOf(typeof(MyStruct));
var arr = new MyStruct[structCount];
fixed (byte* pData = &data[0])
{
for (int i = 0; i < structCount; i++)
{
arr[i] = *(MyStruct*)(pData + (structSize * i));
}
}
return arr;
}