如何创建函数指针的动态数组?

How do i create a dynamic array of function pointers?

我无法创建函数指针的动态数组,当有一个指向 func_cmp 指针的指针时,我很难理解如何使用函数指针的动态数组。

int(*func_cmp[])(void *,void*);

numElements++; 
func_cmp=(func_cmp*)realloc(func_cmp, numElements*sizeof(func_cmp*));
func_cmp[numElements-1]=*func_cmp;

我不确定 realloc 行。

最清楚的方法是使用 typedef

#include <stdlib.h>

typedef int (*functype)(void *a, void *);

functype funcs[100];  // static array                                           

functype *moreFuncs; // dynamic array

int main() {
  int capacity = 16;  // initial capacity
  int n = 0;          // initial size
  moreFuncs = malloc(capacity*sizeof(functype));  // heap dynamic array

  // ...

  // adding element and need more space
  if (n >= capacity) {
     capacity *= 2;
     moreFuncs = realloc(moreFuncs, capacity);
     moreFuncs[n++] = <address of new function>;
  }
}