Вы не можете использовать пользовательские типы с фиксированными массивами. (Подробнее см. Ответ TTonis.)
Вместо того, чтобы пытаться создать структуру в C # с определенной разметкой памяти, я думаю, что вы должны использовать атрибут MarshalAs
, чтобы указать, как следует распределять элементы. Даже если вам удастся получить элементы, которые занимают нужное количество памяти, у вас все равно есть отступы между элементами, что вызывает проблемы с выравниванием.
Вы можете иметь ссылку на обычный массив в структуре и указать, что он должен маршалироваться как ByValArray
.