gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 15:09:47 26 4
gpt4 key购买 nike

我不能做函数指针的动态数组,当有一个指向 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>;
}
}

关于c - 如何创建函数指针的动态数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30277776/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com