今天我开始学习C,我陷入了函数指针的困境。这是我的代码:
\n主要.c:
\n\n#include <stdio.h>\n\nint sumOfElements(int *arr, int arr_elements);\n\nint main()\n{\n\n int (*ptr)(int,int) = NULL;\n ptr = sumOfElements;\n int a[] = {128, 64, 32, 16, 8, 4, 2, 1};\n printf("Total of price is: %d", ptr(a, 8));\n\n}\n\nint sumOfElements(int *arr, int arr_elements)\n{\n int k =0;\n int total;\n for(;k < arr_elements;k++)\n {\n total += arr[k];\n }\n return total;\n}\n\nRun Code Online (Sandbox Code Playgroud)\n我想做的是访问函数中数组的元素sumOfElements。当我正常调用它时,一切都会顺利。当我尝试使用 时function pointer,编译器之前会向我抛出一些警告,然后是Segmentation Fault错误:
main.c:17:9: warning: assignment from incompatible pointer type [-Wincompatible-pointer-types] \nmain.c:19:41: warning: passing argument 1 …Run Code Online (Sandbox Code Playgroud) c arrays function-pointers implicit-conversion function-declaration