bool myArr[] = { false, false, true };
新しく定義した配列を既存の関数の下に渡したい。
void fun(bool** pArr, int idx)
{
if(NULL == *pArr)
return;
(*pArr)[idx] = false;
...
...
return;
}
サブルーチンで何も変更することは許可されておらずfun
、識別子を使用して関数を呼び出したいですmyArr
。試してみるfun(&myArr, 2);
と、コンパイルエラーが発生します。
の呼び出しに一致する関数がありません
fun(bool (*)[3], int)
候補は: void fun(bool**, int)
私が考えることができる1つの方法は以下のとおりです
bool* ptr = myArr;
fun(&ptr, 2);
しかし、私には汚れているように見えますfun
。myArr