C 具有多个参数的函数指针

C 具有多个参数的函数指针,c,pointers,struct,C,Pointers,Struct,我对C语言有点问题 我试图创建一个指向具有多个参数(结构和变量)的函数的指针 我的功能原型是: void db_insert( struct DataBase *db, struct auto_increment *a_i, enum db_insert_types db_insert_type, ... ); 指针的定义如下: void ( *fct )( struct DataBase *db, struct auto_increment *

我对C语言有点问题

我试图创建一个指向具有多个参数(结构和变量)的函数的指针

我的功能原型是:

void db_insert(
    struct DataBase *db,
    struct auto_increment *a_i,
    enum db_insert_types db_insert_type,
    ...
);
指针的定义如下:

void ( *fct )(
    struct DataBase *db,
    struct auto_increment *a_i,
    enum db_insert_types db_insert_type,
    ...
);
我使用的指针如下所示:

int main( ) {
    struct DataBase db;
    struct auto_increment a_i;


    void ( *fct )( struct DataBase *db, struct auto_increment *a_i, enum db_insert_types db_insert_type,... );
   fct = &db_insert;

    ( *fct )( &db, &a_i, db_insert_modele, 1, 2, 3, "asd", "dan", "mere" );

    db_initiate( &db, &a_i );

    db_free_mem( &db );

    return 0;
}
这会导致我的应用程序“停止工作”


我做错了什么?

解决了,问题与函数指针无关。问题是在
db\u initiate

之前调用了
db\u insert
,“但是指针使我的程序崩溃。”,可能不是,但它是如何使用的,您没有告诉我们。您说的“使我的程序崩溃”是什么意思?通过指针调用函数时是否会崩溃?指针分配和函数调用的代码看起来如何?编辑:您是对的,指针调用会导致崩溃,如果您仅将
(*fct)
替换为
db\u insert
,而不是任何其他代码更改,那么它会重新工作吗?我也不知道它是否重要,但在函数指针定义中写入不必要的参数名,这些名称等于主函数的局部变量