+ 1
Function with a Function Parameter in C | [-Wint-conversion] ?
I want to make a function_caller(func, amount) which calls the 'func', 'amount' times. (in C) However, the function gets called only once when I'm asking for 4. |81|warning: passing argument 1 of 'func_caller' makes pointer from integer without a cast [-Wint-conversion]| https://code.sololearn.com/c9a20A12A100
2 Answers
+ 2
In line 23 remove int, it makes part variable inside the if statement local.
In line 68 it's a wrong way to pass a function as an parameter. You should use function pointer. Function pointer is a pointer to function. It's the only way to pass function around.
A function pointer is basically like:
data_type (*func_name)(arg-data_type1, arg-data_type2, ...)
Your dna() has 1 char[] and 1 int. You will also need 2 extra parameter for the function to be passed.
The definition will be:
void func_caller(int (*func)(char[], int), char arg1[], int arg2, int times)
[For better explanation of function pointer you can search online]
And to call func inside the func_caller(), it will be func(arg1, arg2).
In line 78 remove the address operator. Use scanf("%s", d);
In line 81 as the declaration of func_call() is slightly changed, the correct way to call func_call() will be func_call(dna, d, 16, 4)
0
Thank you so much.