2016-04-21 6 views
-4
#include <iostream> 

using namespace std; 
void test(float, int); 

int main() 
{ 
    const int size=11; 
    float a[size]; 

    test(a, size); 

    return 0; 
} 

void test(float a[], int size) 
{ 
    [....] 
} 

をそれはテスト(サイズ)を指します。私は何が間違っているのか分かりません(私はコーディングを学んでいて、配列について学んだり混乱しています)コードは言い続け:「[エラー] 『フロート*』の引数のための 『フロート』に変換することはできません、 『1』 『のボイドテスト(フロート、int型)』に」

+0

なぜ、floatでテストを宣言してから、float []で実装しますか? – Arkadiy

+1

あなたのパラメータ 'float a []'は実際に 'float * a'を意味します。 'a'を' float'または 'float'へのポインタにしますか? –

答えて

5

あなたの関数プロトタイプvoid test(float, int);はあなたの関数void test(float a[], int size)と一致しません。上のプロトタイプをvoid test(float a[], int size);に変更してください(私は、一貫性のためにプロトタイプに入力変数名を残していますが、これは必須ではありません)。

+0

ありがとう! – Fuey500

+0

参考までに、おそらく "なぜ私のコードは機能していないのですか?"それはあなたがdownvotesを得ることを防ぐためにあなたの質問のタイトルから一部。 – Ben

2

おそらく、書くためのもの:

void test(float*, int); 
// ... 
void test(float* a, int size) 
{ 
    [....] 
} 

をテストは、配列引数で呼び出されたときに、配列はその最初の要素へのポインタに減衰する - とその大きさは失われます。

0

テストフォワード減速のパラメータタイプが間違っています。

これを試してください。

#include <iostream> 

using namespace std; 
void test(float *, int); 

int main() 
{ 
    const int size=11; 
    float a[size]; 

    test(a, size); 

    return 0; 
} 

void test(float a[], int size) 
{ 

} 
関連する問題