指向函数指针的指针如何表达?(二)
指向函数指针的指针:
- 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