Как объявить в теле структуры массив - 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];
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д