Многомерные массивы в структуре в C # - PullRequest
5 голосов
/ 20 марта 2009

Я пытаюсь преобразовать следующее (сокращено для удобочитаемости) в C # и работает с проблемами

#define DISTMAX 10
struct Distort {
  int    a_order;
  double a[DISTMAX][DISTMAX];
};

Я думал, что в структурах это был простой случай использования "исправлено", однако у меня все еще есть проблемы.

Вот что у меня есть (с определением выше на странице):

const int DISTMAX = 10;
struct Distort
{
        int a_order;
        fixed double a[DISTMAX,DISTMAX];
}

Ошибка, которую я получаю, это просто синтаксическая ошибка] и [ожидаются из-за того, что я ожидаю, что это ограничение одного массива измерений.

Есть ли способ обойти это?

1 Ответ

7 голосов
/ 20 марта 2009

Буферы фиксированного размера могут быть только одномерными. Вам нужно будет использовать:

unsafe struct Distort
{
     int a_order;
     fixed double a[DISTMAX * DISTMAX];
}

и затем выполните соответствующую арифметику, чтобы получить отдельные значения.

...