具有多个参数的函数指针
问题描述:
我有一个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_initiate
之前调用了db_insert
。
“*但是指针会让我的程序崩溃。*”,可能不是,但它是如何使用的,你做*不*显示我们。 – alk
你是什么意思“使我的程序崩溃”?通过指针调用函数时会发生崩溃吗?指针赋值和函数调用的代码如何查看? –
编辑:你是对的,指针调用导致崩溃 –