Encontré este código de ejemplo y traté de googlear lo que (int (*)[])var1
podría representar, pero no obtuve resultados útiles.¿Qué significa (int (*) []) var1?
#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 el 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!
gran sitio de referencia! – xtofl
Iba a sugerir la herramienta 'cdecl', es agradable ver un front-end web :) – crazyscot
Estoy confundido, no existe el tipo de" matriz de int ". Los tipos de matriz deben tener un tamaño, incluso si es variable. ¿Es este tipo usado en el reparto realmente válido? Si es así, ¿qué significa? ¿Qué es 'sizeof * (int (*) []) 0'? –