5
Conversione stringa char*
è facile in C#Conversione char [,] array a char **
string p = "qwerty";
fixed(char* s = p)
Ma qualcuno sa come convertire char[,]
in char**
in C#?
Conversione stringa char*
è facile in C#Conversione char [,] array a char **
string p = "qwerty";
fixed(char* s = p)
Ma qualcuno sa come convertire char[,]
in char**
in C#?
Il codice seguente mostra come convertire una matrice char[,]
in un puntatore. Dimostra anche come i caratteri possono essere scritti nella matrice e recuperati tramite il puntatore. Si potrebbe anche scrivere usando il puntatore e leggere usando l'array. È lo stesso, poiché fa riferimento agli stessi dati.
char[,] twoD = new char[2, 2];
// Store characters in a two-dimensional array
twoD[0, 0] = 'a';
twoD[0, 1] = 'b';
twoD[1, 0] = 'c';
twoD[1, 1] = 'd';
// Convert to pointer
fixed (char* ptr = twoD)
{
// Access characters throught the pointer
char ch0 = ptr[0]; // gets the character 'a'
char ch1 = ptr[1]; // gets the character 'b'
char ch2 = ptr[2]; // gets the character 'c'
char ch3 = ptr[3]; // gets the character 'd'
}
Nella maggior parte delle lingue 2 array di dimensioni non sono memorizzati in modo compatibile con char **. Non sono sicuro dell'implementazione di C#, ma sospetto che l'array 2D sia appena memorizzato come un blocco contiguo di lunghezza 'x * y', che sarebbe equivalente a un char *. –
@Bobby Sacamano sei fantastico: D ho dovuto usare char [,] p = new char [2, 2]; p [0, 0] = '1'; p [0, 1] = '2'; p [1, 0] = '3'; p [1, 1] = '4'; corretto (char * s = p) e funziona. – alokkoolol123
@bobby tu notte vuoi aggiungerlo come risposta. Altrimenti OP potrebbe farlo. –