2010-11-27 10 views
0

私はその関数を3回呼び出すことによって、異なる配列にデータを埋め込む関数を使いたいと思っています。異なるパラメータでその関数を使用するとき、関数プロトタイプには何を入れますか?

// Function prototype 

void fill_array(); 

int main() 

{ 

    int bin_array[15], 

     prb_array[15], 

     seq_array[15]; 

    fill_array(bin_array); 

    fill_array(prb_array); 

    fill_array(seq_array); 

    return 0; 

} 

私の質問は、関数プロトタイプにどのようなパラメータを設定する必要がありますか? 3つすべて?プロトタイプで

// Function prototype 
void fill_array(insert parameter here); 

答えて

2

、あなたも、まったくただのタイプを任意の名前を入れる必要はありません。

void fill_array(int[]); 

あなたが関数を定義すると、しかし、あなたは名前が必要です。

void fill_array(int joe[]) { 
    //... 
} 

編集:しかし、それはあなたが望むものは何でもすることができ当面の問題に直接関係はないが、birryreeは、優れたポイントになります。することができますので、あなたはおそらく、要素の数を指定するための第二引数を追加することになるでしょう

void fill_array(int[], int); 

void do_stuff() { 
    int bin_array[15], 

     prb_array[15], 

     seq_array[15]; 

    fill_array(bin_array, sizeof(bin_array)/sizeof(int)); 
    fill_array(prb_array, sizeof(prb_array)/sizeof(int)); 
    fill_array(seq_array, sizeof(seq_array)/sizeof(int)); 
} 

void fill_array(int bob[], int length) { 
    for(int i = 0; i < length; i++) { 
     bob[i] = i * 3; 
    } 
} 
+2

:そうfill_arrayはどのように大きな配列が知らないので、あなたは通常、同様に配列のサイズを渡す必要がありますそれが関数に渡された後は配列のサイズを取得しません。 – birryree

+0

優れた点。私はそれを拡張する答えを修正しました –

+0

あなたは 'sizeof(bin_array)/ sizeof(* bin_array)'を意味すると思います。 – strager

関連する問題