Duplicar posible:
Why can’t I convert ‘char**’ to a ‘const char* const*’ in C?¿Por qué no está bien pasar `char **` a una función que toma `const char **` en C?
Tengo curiosidad, ¿por qué no puedo pasar una char **
a const char **
función? Mientras que está bien pasar char *
a una función const char *
parece que no está bien hacerlo con dos punteros. Pensé que siempre estaba bien agregar constness (pero no está bien para dejar constness) pero ahora parece que he estado equivocado.
compilador GCC me está dando el errror:
note: expected ‘const char **’ but argument is of type ‘char **’
Aquí es el fragmento de código:
int f(const char **a) { }
int main() {
char *a;
f(&a);
}
¿Alguna idea?
Esto parece ser similar a http://stackoverflow.com/questions/78125/why-cant-i-convert-char-to-a-const-char-const-in-c –
Por cierto, a personas que votan para cerrar: este no es un duplicado exacto de http://stackoverflow.com/questions/78125/why-cant-i-convert-char-to-a-const-char-const-inc ya que eso uno es específicamente sobre 'const char * const *'. (Algunas de las respuestas allí son relevantes, sin embargo). – jamesdlin