Eventuali duplicati:
Why can’t I convert ‘char**’ to a ‘const char* const*’ in C?Perché non è OK passare `char **` a una funzione che prende un `const char **` in C?
Sono curioso, perché non posso passare un char **
per const char **
funzione? Laddove è OK passare la funzione char *
a const char *
, sembra non essere corretto farlo con i doppi puntatori. Ho pensato che fosse sempre ok aggiungere constity (ma non ok per eliminare constness) ma ora sembra che mi sia sbagliato.
compilatore GCC mi sta dando l'errror:
note: expected ‘const char **’ but argument is of type ‘char **’
Ecco il frammento di codice:
int f(const char **a) { }
int main() {
char *a;
f(&a);
}
Tutte le idee?
Questo sembra essere simile a http://stackoverflow.com/questions/78125/why-cant-i-convert-char-to-a-const-char-const-in-c –
BTW, a persone che votano per chiudere: questo non è un duplicato esatto di http://stackoverflow.com/questions/78125/why-cant-i-convert-char-to-a-const-char-const-in-c dal quel uno riguarda specificamente 'const char * const *'. (Alcune delle risposte sono comunque rilevanti). – jamesdlin