Powiel możliwe:
Why can’t I convert ‘char**’ to a ‘const char* const*’ in C?Dlaczego przekazanie `char **` do funkcji, która przyjmuje `const char **` w C, nie jest w porządku?
Jestem ciekaw, dlaczego nie mogę zdać char **
do const char **
funkcja? Gdzie jest OK, aby przekazać char *
do funkcji const char *
wydaje się nie być w porządku, aby zrobić to za pomocą podwójnych wskaźników. Myślałem, że zawsze było w porządku, aby dodać constness (ale nie w porządku, aby obniżyć constness), ale teraz wydaje się, że się pomyliłem.
kompilator gcc daje mi errror:
note: expected ‘const char **’ but argument is of type ‘char **’
Oto fragment kodu:
int f(const char **a) { }
int main() {
char *a;
f(&a);
}
Jakieś pomysły?
To wydaje się być podobna do http://stackoverflow.com/questions/78125/why-cant-i-convert-char-to-a-const-char-const-in-c –
BTW, do osoby głosujące na zamknięcie: nie jest to dokładny duplikat http://stackoverflow.com/questions/78125/why-cant-i-convert-char-to-a-const-char-const-in-c, ponieważ w szczególności chodzi o 'const char * const *'. (Niektóre z odpowiedzi są jednak istotne). – jamesdlin