c - 接受并返回指针的函数指针

标签 c pointers

<分区>

我正在尝试让这段代码运行..

#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*) 是一个函数的原型(prototype)。你想要一个函数指针:int* (*my_ptr)(int*)

关于c - 接受并返回指针的函数指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53138461/

相关文章:

c++ ifstream读取无法存储到短数组缓冲区中

在 mcmc 中从 R 从 C 调用 R

c - 不建议使用以下指针。特别是有助于自动并行化

c - 如何解决错误 "Segmentation fault (core dumped)"

c - 结构中的 '.' 是什么意思

C++制作指向const对象的指针数组

c++ - 在 C++ 中使用指针的变量值及其地址

使用 if 条件检查时,条件跳转或移动取决于未初始化的值

C 打开文件检查它是否是二进制文件,如果是则打印它是二进制文件

c++ - 指向抽象类的指针 vector ,用于访问派生类成员