unsigned char (*mat)[TABLE_X]=NULL;
mat = calloc (TABLE_X+2, sizeof (*mat));
Mais voilà. J'aimerais pouvoir passer mon pointeur à une fonction qui permette d'allouer la mémoire. Je ne vais pas retourner ce pointeur mais juste y assigner le bloc (pointeur qui sera donc passé par référence)
mat); }
En gros:void alloue(unsigned char **mat) { *mat = calloc (TABLE_X+2, sizeof (*mat)); } void main(void) { unsigned char (*mat)[50]=NULL; alloue(&Mais ça ça me fait un warning, et je doute en plus de ça que ça fonctionne.
Warning: Passing arg 1 of 'alloue' from incompatible pointer type
Comment faire?

Parce que si je mets mat en variable globale, ça affectera beaucoup les performances? Sachant que c'est la matrice du jeu et qu'elle sera beaucoup utilisée...
Et l'effet de
unsigned char (*mat)[50];
est la déclaration de 50 pointeurs de type caractère non? Alors que
unsigned char *mat[50];
aurait déclaré un pointeur sur un tableau de 50 caractères?