首页 > 解决方案 > 接受并返回指针的函数指针

问题描述

我试图让这段代码运行..

#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; 

有人可以解释错误/问题吗?谢谢!

标签: cpointers

解决方案


int* my_ptr(int*)是函数的原型。你想要一个函数指针:int* (*my_ptr)(int*)


推荐阅读