Ho trovato questo codice di esempio e ho provato a google cosa potrebbe rappresentare lo (int (*)[])var1
, ma non ho ottenuto risultati utili.Cosa 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 io lavoro con i VLA in C99 quindi 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!
ottimo sito di riferimento! – xtofl
Stavo per suggerire lo strumento 'cdecl', bello vedere un front-end Web per questo :) – crazyscot
Sono confuso - non esiste un tipo" array di int ". I tipi di matrice devono avere una dimensione, anche se è variabile. Questo tipo di cast è veramente valido? Se è così, cosa significa? Cosa è 'sizeof * (int (*) []) 0'? –