Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
44 / 45 / 15
Регистрация: 11.08.2010
Сообщений: 226
.NET 2.x

unsafe byte array to struct array

05.07.2013, 16:15. Показов 2773. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть массив байт размером N.

Есть структура, внутри которой enum поле размером в 1 байт.

Как с помощью unsafe кода преобразовать массив байт в массив структур? Я пробовал, но чего-то хреново вышло, не то что надо. Первый элемент нормально преобразовал, а дальше по нулям
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.07.2013, 16:15
Ответы с готовыми решениями:

Переменные и классы в byte array
Есть: public class internalItem { public string material { get; set; } public string myMaterial =...

Как работает Array.Find и Array.FindAll
Здравствуйте, у меня возник вопрос по поводу класса Array и методов Find и FindAll. Видел такой синтаксис int a = Array.Find(mas, x =>...

Websocket frame: Как правильно построить frame byte array?
Доброго дня. Пытаюсь написать свою имплементацию Websocket, но застрял на построении frame. Вот структура frame согласно спецификации...

1
 Аватар для m0nax
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
05.07.2013, 16:35
Лучший ответ Сообщение было отмечено Heisenberg как решение

Решение

циклом же пройтись и собрать все структуры

Добавлено через 2 минуты
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        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;
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.07.2013, 16:35
Помогаю со студенческими работами здесь

List<Array> to Array
Проблема конвертнуть List&lt;Array&gt; в двумерный массив.

Byte array to struct
Имеется структура например public struct Sphere { public Vector location; public float radius; } ...

Struct to byte array
Есть вот такая вот структура private struct ipcam_command_t { public short cmd; public short...

Конвертирование HEX array в BYTE array
Собственно сабж. Накопипастил. И слепил это. Скажите а можно лаконичнее? //Художественный изгиб преобразования HEX в Byte...

Byte array to string
Добрый день! Имеется девайс: U-Prox-Keypad Задача: считать с клавиатуры символы 0-9 и *, и # и вывести в консоли соответственно (* и #...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru