Qu'est-ce que (int (*) []) stand var1 pour?
-
24-10-2019 - |
Question
J'ai trouvé ce code exemple et j'ai essayé de google ce (int (*)[])var1
pourrait représenter, mais je suis pas de résultats utiles.
#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);
}
Normalement, je travaille avec Vlas C99 donc je suis habitué à:
#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);
}
Merci!
La solution
Cela signifie « var1 coulé en pointeur tableau de int ».
Autres conseils
Il est un transtypage à un pointeur qui pointe vers un tableau de int.
(int (*)[])
est un pointeur vers un réseau de int
s. Équivalent à l'argument de la fonction int[n][m]
.
Ceci est un idiome commun dans C:. Tout d'abord faire une malloc à la mémoire de réserve, puis le jeter dans le type souhaité
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow