-1
私は関数の数がいくつかあり、すべての関数は配列からすべての負の数を並べ替えるようなやり方をとっています。Cの引数の関数ポインタ
また私はそれの配列、大きさ及びint
を受け取り、問題がint
(関数ポインタ)である関数の名前に3つの引数ポインタと機能display
を作成しなければなりません。私はこれをやろうとしますが、これはうまくいかず、関数ポインタを使ってこのエクササイズを正しく行うために何をすべきか分かりません。なぜなら、私はそれを理解していないからです。
これはあなたの意図が明確でないので、それはあなたの意図と異なる場合があります私のコード
int main (int argc, char **argv)
{
srand (time (NULL));
int arr[MAX_SIZE], second_arr[MAX_SIZE], i;
random_arr (arr);
display (arr, 20, negative_number (arr, second_arr));
system ("PAUSE");
return 0;
}
void random_arr (int *my_arr)
{
int i;
for (i = 0; i < MAX_SIZE; i++) {
*(my_arr + i) = i - 10;
}
}
int negative_number (int *arr, int *sort_arr)
{
int i;
for (i = 0; i < 20; i++) {
if (arr[i] < 0) {
sort_arr[i] = arr[i];
}
}
return sort_arr;
}
void diplay (int *arr, int size, int (*a_function) (int, int))
{
int i = 0;
for (i = 0; i < size; i++) {
printf ("%d\n", a_function);
}
}
a_function表示中()関数が呼び出されると、関数ポインタで始まるし、*表記を使用して呼び出す必要がありますされているときに、2つのパラメータを持っている必要があります。だと思います – ad3angel1s
また、display()関数を呼び出すときは、引数なしで関数ポインタを渡すだけで済みます。私はあなたがそのような行為を解決しようとする前に、関数ポインタの構文をより深く理解する必要があると思う。 – ad3angel1s
"関数のポインタは*表記を使って呼び出さなければならない。 –