unsigned char
配列z
への参照をmyfunc()
内に作成することはできません。私はいくつかの方法を試しましたが、それを理解できません。配列への参照
int myfunc (int &y, unsigned char (&z)[2]);
int main(int argc, char *argv[]) {
int y = 1;
unsigned char z[2];
int x = myfunc(y, z[2]);
}
int myfunc(int &y, unsigned char (&z)[2]) {
y = 123;
z[0] = foo;
z[1] = bar;
return 456;
}
私は取得しています、次のエラー:行のために
error: in passing argument 2 of ‘int myfunc(int&, unsigned char (&)[2])’
int myfunc (int &y, unsigned char (&z)[2]);
そして:ラインint x = myfunc(y, x);
については
error: invalid initialization of reference of type ‘unsigned char (&)[2]’ from expression of type ‘unsigned char’
これは私の最も最近の試みであります
配列を参照する方法は何ですか(参照配列ではありません)?
ベクターを使用すると、これは本当に簡単になり、そうでない場合は生の配列よりもはるかに優れています。とにかく、単一の要素を渡してあなたの関数を呼び出しています。 'z [2]'ではなく 'z'を使います。 – chris
私はこの側面に沿ってベクトルを学習しようとしていますが、これでどのように簡単になりますか?私がこの作業を行うために見ることができる唯一の方法は、配列がグローバルに定義されるようにすることです。 – jwbensley
ベクトルでは、あなたの署名は 'int myfunc(int&y、std :: vector&z)'となります。他の種類のパラメータを使用することで期待される構文を提供します。 –
chris