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!

Était-ce utile?

La solution

Autres conseils

Il est un transtypage à un pointeur qui pointe vers un tableau de int.

(int (*)[]) est un pointeur vers un réseau de ints. É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
scroll top