c - 接受并返回指针的函数指针
问题描述
我试图让这段代码运行..
#include <stdio.h>
int *myMethod(int *a)
{
printf("Hello");
return a;
}
int main()
{
// my_ptr is a pointer to function myMethod()
int *my_ptr(int *) = myMethod;
// Invoking myMethod() using my_ptr
int a = 5;
int *p = (*my_ptr)(&a);
printf("Bye %d\n", *p);
return 0;
}
我认为我的函数指针 my_ptr 的语法是正确的,它可以将一个 int 指针作为参数并返回一个 int 指针,但是当我编译它时,出现以下错误:
error: function 'my_ptr' is initialized like a variable
int *my_ptr(int *) = myMethod;
有人可以解释错误/问题吗?谢谢!
解决方案
int* my_ptr(int*)
是函数的原型。你想要一个函数指针:int* (*my_ptr)(int*)
推荐阅读
- html - 外部 css 链接有问题
- sql - SQL Server 查找类先决条件循环
- arrays - 检查空格的数组公式
- html - 链接被识别为链接,但无法点击一页网站内的锚点
- python - 如何将填充应用于数组列表?
- ios - CoreBluetooth 中是否存在 didLostPeripheral (或类似方法)
- php - 以逗号分隔字符串而不将其放入数组中
- java - 为什么在 Headless 模式下调用 Quit 时 ChromeDriver 不存储缓存?
- django - django url 连接。我不想连接
- c# - 将 C# 转换为 Powershell 和 Regex 不起作用还是我做错了?