En C, il n'est pas possible de passer à une fonction
Code : Sélectionner tout - Visualiser dans une fenêtre à part
void f(T const * const * a)
un argument d'un des types suivants :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
T * * a;
T * const * b;
T * * const c;
En fait, pour pouvoir appeler la fonction f, il faut faut au moins que le paramètre passé soit de type :
C'est à dire, pointeur vers un pointeur vers un const.

Pourquoi ? Quel danger y a-t-il à passer a, b ou c à ma fonction f ?

En fait cette restriction en C me parrait étrange car il n'y a à mon avis danger à passer mes pointeurs a, b ou c à ma fonction f, car ma fonction est "plus const" que mes variables a, b et c.

Mais, puisque le C interdit le passage d'une variable non const ** à une fonction const * const *, j'imagine qu'il y a une bonne raison, qui m'échappe. Si quelqu'un connait cette raison, j'aimerai qu'il me la présente.