2016-03-20 17 views
0

私は倍の束を呼び出し、この機能を持って配列を宣言することなく、関数に配列を渡しますlike:明示的に事前に

shifter({1,2,3,0}); 

私は上記の例はうまくいきません。私は関数を呼び出すたびに明示的に配列を宣言する必要はありませんので、動作する構文はありますか?

これはCであり、C++ではありません。

答えて

0

Cの関数に配列を渡すと、配列自体の内容ではなく、最初の要素のアドレスが渡されます。だから私はそれをする方法がないと思う。

実際には4つのパラメータしかない場合、4 intを使用すると長すぎることはありません。それ以上のものがある場合は、なぜアレーを使用しないのですか? (C99 +で利用可能)を使用するCompound Literals

+0

配列は変数の長さとすることができるので。 4 intを渡すのは厳格です。 – nicomp

+0

それからもう一つの答えを考えてみましょう。 –

+0

上記の@cool Guyの回答をご覧ください。それは動作します。 – nicomp

3

shifter((int []){1,2,3,0}); 

注:GCCと同様C90モードでの拡張として打ち鳴らすサポートして両方。

+0

括弧がそれを固定しました。ありがとう! – nicomp

0

次のものを使用し、C++を使用して検討することもできた場合:

shifter(new int[](1,2,3,0)); 
+2

これはC++ではありません。私はそれを書いた。 – nicomp

関連する問題