C 具有多个参数的函数指针
我对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 *
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
,而不是任何其他代码更改,那么它会重新工作吗?我也不知道它是否重要,但在函数指针定义中写入不必要的参数名,这些名称等于主函数的局部变量