指向函数指针的指针:
- C/C++ code
#include <stdio.h> #include <stdlib.h> #include <string.h> double fun(double x) { return x; } main() { void* data=malloc(4); memmove(data,&fun,4); printf("fun =%p\n",fun); printf("*data=%p\n", *(double*(*)(double*))data ); }
如何修改程序,让两行显示相同的值?
------解决方案--------------------
- C/C++ code
double (*data)(double) = fun; printf("fun =%p\n",fun); printf("*data=%p\n",data);
------解决方案--------------------
double(* data)(double) = fun
------解决方案--------------------
memmove(data,&fun,4);
data的值输出即可。
------解决方案--------------------
直接输出不就是了嘛?
------解决方案--------------------
int(*a[10])(int);
刚才有人问
------解决方案--------------------
------解决方案--------------------
定义时候不是多颗*的问题么?
------解决方案--------------------
在函数钱加个*,比如说int *a();返回一个指向整型的指针,但是不要和int (*a)()搞混了后者是一个指针,1前者是一个函数,具体你可以baidu或者google