Как объявить в теле структуры массив - C#

Узнай цену своей работы

Формулировка задачи:

Всем здравствуйте. Вот объявление структуры (без выравнивания границ, то есть байт за байтом):
Листинг программы
  1. [StructLayout(LayoutKind.Sequential)]
  2. struct StrData36
  3. {
  4. //4 + 4x8 = 36 байт
  5. public Int32 t;
  6. public float v0;
  7. public float v1;
  8. public float v2;
  9. public float v3;
  10. public float v4;
  11. public float v5;
  12. public float v6;
  13. public float v7;
  14. }
если я попытаюсь вместо последних восьми вещественных членов структуры объявить соответствующий массив, то в структуру передадутся только 4 байта его (массива) адреса, то есть размер структуры станет равным 4 + 4 = 8 байт вместо ожидаемых 36-ти. Как решить эту проблему. (В приведеном примере всего 8 однотипных членов, а если их будет 100? Писать в коде 100 строчек и создавать 100 имён?)

Решение задачи: «Как объявить в теле структуры массив»

textual
Листинг программы
  1. [StructLayout(LayoutKind.Sequential)]
  2. unsafe struct StrData36
  3. {
  4.     public Int32 t;
  5.     public fixed float v[100];
  6. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.556 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы