2016-12-02 119 views
-1

我有一个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; 
} 

这使我的应用程序“停止工作“

我做错了什么?

+1

“*但是指针会让我的程序崩溃。*”,可能不是,但它是如何使用的,你做*不*显示我们。 – alk

+0

你是什么意思“使我的程序崩溃”?通过指针调用函数时会发生崩溃吗?指针赋值和函数调用的代码如何查看? –

+0

编辑:你是对的,指针调用导致崩溃 –

回答

1

解决了,这个问题与函数指针无关。问题是在db_initiate之前调用了db_insert