I get a message about passing an incompatible pointer type from gcc when I pass a double ** to a function that expects a const double **. This is confusing to me since const double ** just puts more constraints on the use of the parameter passed in. How is this essentially different from passing a double * to a function that expects a const double *?
Added later: Passing double ** to a function that expects const double * const * is similarly problematic, any idea what can go wrong for this?