我试图通过while循环中的函数指针运行list_A中的所有函数。控制台没有返回任何东西。
谢谢你的帮助!
void func_A(){ printf("Hello A");}
void func_B(){ printf("Hello B");}
void func_C(){ printf("Hello C");}
typedef void (*list)(void);
list list_A[] = { func_A,func_B,func_C, 0 };
list list_B[] = { func_A, 0 };
void func(list *list_p)
{
while (*list_p++ != 0)
{
(*list_p)();
}
}
int main()
{
func(list_A);
}
我期望打印A, B, C,但由于某些原因,函数并没有真正调用
抛出分割错误,因为列表指针在检查条件之后递增,但在调用函数指针之前,因此您试图在第三次迭代中调用第四个元素,这不是函数,而是整数。
尝试在调用函数指针后在循环中增加它,并检查当前元素是否为空作为循环条件。