Как объявить в теле структуры массив - C#
Формулировка задачи:
Всем здравствуйте.
Вот объявление структуры (без выравнивания границ, то есть байт за байтом):
если я попытаюсь вместо последних восьми вещественных членов структуры объявить соответствующий массив, то
в структуру передадутся только 4 байта его (массива) адреса, то есть размер структуры станет равным 4 + 4 = 8 байт вместо ожидаемых 36-ти. Как решить эту проблему.
(В приведеном примере всего 8 однотипных членов, а если их будет 100? Писать в коде 100 строчек и создавать 100 имён?)
[StructLayout(LayoutKind.Sequential)] struct StrData36 { //4 + 4x8 = 36 байт public Int32 t; public float v0; public float v1; public float v2; public float v3; public float v4; public float v5; public float v6; public float v7; }
Решение задачи: «Как объявить в теле структуры массив»
textual
Листинг программы
[StructLayout(LayoutKind.Sequential)] unsafe struct StrData36 { public Int32 t; public fixed float v[100]; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д