xiaole921 2022-03-10 15:29 采纳率: 0%
浏览 43

函数前的类型 (void *(*)(size_t)) 这是什么意思?

问题遇到的现象和发生背景

cJSON Hook = { (void *( *))(size_t))h_malloc, h_free };

typedef struct cJSON_Hooks
{
void *(*malloc_fn)(size_t sz);
void (*free_fn)(void *ptr);
} cJSON;

问题相关代码,请勿粘贴截图

定义一个结构体,结构体内,函数指针malloc_fn .参数为sz, 返回一个指针,在具体实现中,h_malloc 函数前的 (void ()(size_t)) 代表什么意思?

运行结果及报错内容
我的解答思路和尝试过的方法

h_malloc函数 是 一个 函数参数为size_t,函数返回一个void *指针 的函数,所以 (void * ( *)(size_t)) 是不是代表了 函数的类型

我想要达到的结果
  • 写回答

2条回答 默认 最新

  • 一只蚂蝼 2022-03-10 15:43
    关注

    就是把h_malloc函数指针强制转换成(void ()(size_t))函数类型的指针

    评论

报告相同问题?

问题事件

  • 修改了问题 3月10日
  • 修改了问题 3月10日
  • 修改了问题 3月10日
  • 修改了问题 3月10日
  • 展开全部