¿Qué significa (int (*) []) var1?
-
24-10-2019 - |
Pregunta
Encontré este código de ejemplo e intenté buscar en Google qué (int (*)[])var1
Podría soportar, pero no obtuve resultados útiles.
#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 trabajo con VLA en C99, así que estoy acostumbrado 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);
}
¡Gracias!
Solución
Significa "Echar var1 en puntero a la matriz de int".
Otros consejos
Es un typecast de un puntero que apunta a una matriz de int.
(int (*)[])
es un puntero a una variedad de int
s. Equivalente al int[n][m]
argumento de función.
Este es un idioma común en C: primero hacer un malloc para reservar la memoria, luego lanzarlo al tipo deseado.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow