【发布时间】:2019-06-01 18:58:09
【问题描述】:
我是指针数组的新手(将函数放入数组)并使用 malloc 为其分配内存。你能帮我处理这段代码吗?有功能:int comp_int(int a, int b); int comp_int_abs(int a, int b); int comp_int_length(int a, int b); int comp_int_digits_sum(int a, int b);
并希望将指向这些函数的指针放在指针数组中。首先想为数组动态分配内存并将函数的指针放入其中。卡在这个地方,我做错了什么?
int (**funcs)(int, int) = malloc(4*sizeof(int));
if(!*funcs)
{
printf("Failed to allocate memory");
return 8;
}
*funcs={add_int, sub_int, div_int, mul_int};
【问题讨论】:
-
关于
malloc的计算,您应该几乎总是使用something = malloc(NumberOfThings * sizeof *something)的形式。这样,无论是指向函数的指针还是指向结构的指针,sizeof *something始终是something指向的大小。所以它总是合适的尺寸。所以int (**funcs)(int, int) = malloc(4 * sizeof *funcs);是对的。 -
@EricPostpischil 谢谢,不知道 ;)