Как объявить в теле структуры массив - 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];
}