重複の可能性:(
非constへのポインターへのポインター)を(constへのポインターへのポインター)に変換することが合法ではない理由
次のfooの呼び出しで警告(gcc 42.2)が表示されるのはなぜですか?
void foo(const char **str)
{
(*str)++;
}
(...)
char **str;
foo(str);
(...)
char **
を除いて関数を呼び出せない理由は理解できますconst char **
が、その逆は問題ないように思われるので、なぜ次の警告が表示されるのでしょうか。
warning: passing argument 1 of 'foo' from incompatible pointer type