2009-03-20 40 views
5

sto cercando di convertire i seguenti (accorciata per migliorare la leggibilità) per C# e incorrere in problemiarray multidimensionali in una struct in C#

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

ho pensato a struct si trattava di un semplice caso di utilizzo di "fisso" tuttavia sto ancora avendo problemi.

Ecco cosa ho (Con una definizione più in alto nella pagina):

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

L'errore che ottengo è stimply Errore di sintassi che] e [sono attesi a causa di quello che mi aspetto di essere una limitazione di un array a dimensione singola.

C'è un modo per aggirare questo?

risposta

7

I buffer di dimensioni fisse possono essere solo monodimensionali. Dovrai utilizzare:

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

e quindi eseguire l'aritmetica appropriata per ottenere valori individuali.

+0

Ciò conferma ciò che sospettavo già. Grazie. – John

+0

Non è necessario contrassegnarlo come non sicuro? –