通过函数指针调用函数的问题

Problem with calling a function via a function pointer

我有一个带有函数指针的结构,用于指向 bar() 函数,但我不知道如何调用所指向的函数:

#include <stdlib.h>
typedef struct Foo
{
  int (*func_ptr)(const char *, const char *);
} Foo;

int bar(const char *a, const char *b)
{
  return 3;
}

int main(void)
{
  Foo *foo = (Foo *)malloc(sizeof(Foo));
  foo->func_ptr = &bar;
  //how do i call the function?
  return 0;
}

假设你的const char *a是“hello”而const char *b是“there”,那么你可以使用以下任何一种形式通过它的指针调用函数:

  (foo->func_ptr)("hello", "there");
  (*foo->func_ptr)("hello", "there");
  foo->func_ptr("hello", "there");