2009-03-20 38 views
5

estoy tratando de convertir el siguiente (se ha reducido para facilitar la lectura) a C# y en funcionamiento en problemasmatrices multidimensionales en una estructura en C#

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

pensé en estructuras que era un simple caso de la utilización de "fijo" sin embargo, sigo teniendo problemas.

Esto es lo que tengo (con una definición más arriba en la página):

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

El error que consigo es stimply Error de sintaxis que] y se espera [debido a lo que espero que sea una limitación de una matriz de una sola dimensión.

¿Hay alguna forma de evitar esto?

Respuesta

7

Los búferes de tamaño fijo solo pueden ser unidimensionales. Tendrá que utilizar:

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

y luego hacer la aritmética adecuada para obtener valores individuales.

+0

Esto confirma lo que ya sospechaba. Gracias. – John

+0

¿No necesita marcarlo como inseguro también? –

Cuestiones relacionadas