Che cosa significa (int (*) []) Stand var1 per?
-
24-10-2019 - |
Domanda
Ho trovato questo codice di esempio e ho cercato di google Cosa (int (*)[])var1
potrebbe stare per, ma ho ottenuto risultati utili.
#include <unistd.h>
#include <stdlib.h>
int i(int n,int m,int var1[n][m]) {
return var1[0][0];
}
int example() {
int *var1 = malloc(100);
return i(10,10,(int (*)[])var1);
}
Normalmente io lavoro con i VLA a C99 così mi sono abituato a:
#include <unistd.h>
#include <stdlib.h>
int i(int n,int m,int var1[n][m]) {
return var1[0][0];
}
int example() {
int var1[10][10];
return i(10,10,var1);
}
Grazie!
Soluzione
Significa " getto var1 in puntatore array di int ".
Altri suggerimenti
E 'un typecast a un puntatore che punta a un array di int.
(int (*)[])
è un puntatore a una matrice di int
s. Equivalente a l'argomento della funzione int[n][m]
.
Questo è un idioma comune in C:. Prima fare un malloc alla memoria di riserva, poi gettato al tipo desiderato
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow