私はC++にかなり慣れていないので、最近この問題に遭遇しました。
このコードは明らかに動作します:
void setvalues(int *c, int *d)
{
(*c) = 1;
(*d) = 2;
}
int main()
{
int a, b;
setvalues(&a, &b);
std::cout << a << b;
}
では、なぜこれがエラーを返すのでしょうか? Visual C++ 2010 エラー:
C2664: 'setvalues' : cannot convert parameter 1 from 'int (*)[2]' to 'int *[]'
void setvalues(int *c[2], int *d[2])
{
(*c[1]) = 1;
(*d[1]) = 2;
}
int main()
{
int a[2], b[2];
setvalues(&a, &b);
std::cout << a[1] << b[1];
}
配列へのポインターの違いは何ですか? 私は周りを探しましたが、運がありませんでした。