La taille n'est pas connue dans "alloue", si tu voulais allouer (TABLE_X+2) * 50 octets, ça ne marchera pas.
void alloue(unsigned char (*mat)[50])
{
mat = calloc(10,sizeof(*mat));
}
void _main(void)
{
unsigned char (*mat)[50] = NULL;
alloue(mat);
}
La ça devrait être bon, mais tu perd l'avantage de ta fonction "alloue" qui était censé allouer 10 tableaux de N elements. Tu devrais plutot passer la taille à allouer en parametre, non ?